├── .eleventy.js ├── .eleventyignore ├── .gitignore ├── README.md ├── _includes ├── cta.pug ├── default.pug ├── footer.pug ├── layouts │ ├── about.pug │ ├── api.pug │ ├── guides-post.pug │ ├── guides.pug │ ├── index.pug │ └── post.pug └── nav.pug ├── about └── index.md ├── api └── index.md ├── assets ├── about │ ├── example-explore.mp4 │ ├── example-journal.mp4 │ ├── example-meeting.mp4 │ ├── example-mind-map.png │ ├── example-mood-board.mp4 │ ├── example-note-taking.png │ ├── example-research.png │ ├── feature-collaboration.mp4 │ ├── feature-comments.mp4 │ ├── feature-images-and-links.mp4 │ ├── feature-tags.mp4 │ ├── intro.mp4 │ ├── mobile.mp4 │ └── signature.png ├── add.svg ├── anon-avatar.svg ├── app-icon-mac.png ├── arena.svg ├── cat.png ├── down-arrow.svg ├── email.gif ├── fonts │ ├── Greenhouse-Aureum.woff2 │ ├── JeanLuc-Bold.woff2 │ ├── OsakaMono-Kinopio.woff2 │ ├── Recoleta-Bold.woff2 │ └── Recoleta-Regular.woff2 ├── froggo.png ├── garden-flower.png ├── heart.svg ├── js │ ├── api.js │ ├── auto-paint.js │ ├── examples.js │ ├── fuzzy-min.js │ ├── magic-paint.js │ ├── recorded-strokes.js │ └── search.js ├── logo-active.png ├── logo-base.png ├── logo-hover.png ├── moon-phases │ ├── full-moon.svg │ ├── new-moon.svg │ ├── waning-crescent.svg │ ├── waning-gibbous.svg │ ├── waning-quarter.svg │ ├── waxing-crescent.svg │ ├── waxing-gibbous.svg │ └── waxing-quarter.svg ├── new.gif ├── overview │ ├── 1.mp4 │ ├── 2.mp4 │ ├── 3.mp4 │ └── 4.mp4 ├── posts │ ├── Journaling │ │ ├── journal-creation.mp4 │ │ ├── journal-prompts-and-weather.png │ │ ├── journal-prompts-habits.png │ │ ├── journal-weather.png │ │ └── prompt-of-day.png │ ├── add-to-explore.png │ ├── add-url-to-card.mp4 │ ├── arena-space.png │ ├── assign-connection-type.mp4 │ ├── card-checkboxes.mp4 │ ├── card-count-exempted.png │ ├── card-details-checkbox.png │ ├── card-styles.png │ ├── create-cards.mp4 │ ├── create-connection.mp4 │ ├── edit-card.mp4 │ ├── example-space.mp4 │ ├── export-cards.png │ ├── export-space.mp4 │ ├── export-space.png │ ├── export.png │ ├── favorite-space.png │ ├── favorite-user.png │ ├── favorites.mp4 │ ├── filters.png │ ├── groups │ │ ├── add-group-from-user.mp4 │ │ ├── add-space-to-group.mp4 │ │ ├── group-details-invite-button.webp │ │ ├── group-members.webp │ │ ├── group-members2.webp │ │ ├── group-members3.webp │ │ ├── group-overview.webp │ │ └── share-invite-button.webp │ ├── guides │ │ ├── life-tasks1.png │ │ ├── life-tasks2.png │ │ ├── life-tasks3.png │ │ ├── life-tasks4.png │ │ ├── life-tasks5.png │ │ ├── life-tasks6.png │ │ ├── routine-1.png │ │ ├── routine-2.png │ │ ├── routine-3.png │ │ ├── routine-4.png │ │ ├── routine-5.png │ │ └── track-media │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ └── 4.png │ ├── hide-links.mp4 │ ├── image-card-url.png │ ├── image-card.png │ ├── import-arena.png │ ├── import-space.png │ ├── invite-collaborators.png │ ├── journal_prompts_and_weather.png │ ├── live-spaces.png │ ├── long-press.mp4 │ ├── minimap │ │ ├── minimap-pan.mp4 │ │ ├── minimap.webp │ │ └── minimap2.webp │ ├── move-cards.png │ ├── multiple-urls-in-card.mp4 │ ├── new-spaces.png │ ├── offline-dialog.png │ ├── paint-move-cards.mp4 │ ├── press-kit │ │ ├── example-space.mp4 │ │ ├── kinopio-assets.zip │ │ ├── logo-base.png │ │ ├── real-time-collaboration.mp4 │ │ ├── screenrec1.mp4 │ │ ├── screenrec2.mp4 │ │ └── screenshot1.png │ ├── privacy-dialog.png │ ├── removed-dialog.png │ ├── tag-details.png │ ├── tag-sidebar.png │ ├── teams │ │ ├── addspaceteam.mp4 │ │ ├── addteam.mp4 │ │ ├── addteam.png │ │ ├── removeteamuser.mp4 │ │ ├── share.png │ │ ├── spaces.png │ │ ├── teaminvite.png │ │ └── teams.png │ ├── templates-dialog.png │ ├── templates.png │ └── user-pricing-dialog.png ├── search.svg ├── sunglasses.svg ├── tatiana-egoshina.png ├── templates.svg ├── title.svg ├── topography.png └── updated.gif ├── guides ├── diary-hobbies.md ├── index.md ├── life-tasks.md ├── personal-homepage.md ├── plan-routine.md ├── present-research.md └── track-media.md ├── index.md ├── package-lock.json ├── package.json ├── posts ├── BackLinks.md ├── Journaling.md ├── Searching.md ├── adding-images-to-cards.md ├── apps.md ├── boxes.md ├── changing-space-background.md ├── checkbox-cards.md ├── comments.md ├── configuring-your-firewall.md ├── creating-cards-and-connections.md ├── delete-your-account.md ├── duplicating-a-space.md ├── editing-connections.md ├── encryption.md ├── exporting.md ├── extensions.md ├── favoriting-spaces-and-people.md ├── filters.md ├── groups.md ├── how-much-does-kinopio-cost.md ├── how-your-data-is-stored.md ├── importing.md ├── inbox.md ├── inviting-collaborators-to-a-space.md ├── keyboard-shortcuts.md ├── links-in-cards.md ├── locking.md ├── managing-collaborators.md ├── minimap.md ├── mobile-tips.md ├── notifications.md ├── offline-support.md ├── posts.json ├── press-kit.md ├── privacy-options.md ├── privacy-policy.md ├── refund-policy.md ├── reset-your-password.md ├── restoring-removed-cards-and-spaces.md ├── selecting-and-bulk-actions.md ├── sharing-spaces.md ├── styling-cards.md ├── tags.md ├── templates.md ├── terms-of-service.md ├── use-restrictions-policy.md ├── using-explore.md └── who-makes-kinopio.md └── styles ├── about.styl ├── guides.styl ├── overview.styl └── styles.styl /.eleventy.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | config.addPassthroughCopy("./assets") 3 | config.setQuietMode(true) 4 | 5 | // https://www.11ty.dev/docs/collections/#collection-api-methods 6 | config.addCollection("alphabeticallySorted", collectionApi => { 7 | const posts = collectionApi.getAll() 8 | let titles = posts.map(post => { 9 | return post.data.title 10 | }) 11 | titles = titles.sort() 12 | const collection = titles.map(title => { 13 | return posts.find(post => post.data.title === title) 14 | }) 15 | return collection 16 | }) 17 | 18 | return { 19 | templateFormats: [ 20 | "md", 21 | "css" 22 | ] 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /.eleventyignore: -------------------------------------------------------------------------------- 1 | README.md 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | 4 | # local env files 5 | .env.local 6 | .env.*.local 7 | 8 | # Log files 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.sw? 21 | 22 | /_site 23 | *.css 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Netlify Status](https://api.netlify.com/api/v1/badges/02be71fd-867f-4bfb-b000-9ff43f76a2e3/deploy-status)](https://app.netlify.com/sites/kinopio-help/deploys) 2 | 3 | # Kinopio Help 4 | 5 | ![froggo](https://help.kinopio.club/assets/froggo.png) 6 | 7 | [help.kinopio.club](https://help.kinopio.club) 8 | 9 | A simple static [11ty](https://www.11ty.io/docs/usage/) website for [Kinopio](https://kinopio.club) help posts and API docs 10 | 11 | ## Setup 12 | 13 | $ npm install 14 | 15 | ## Run 16 | 17 | $ npm run serve 18 | $ npm run styles 19 | http://localhost:8081 20 | 21 | ## Create a New Post 22 | 23 | Duplicate and edit an existing post in `/posts` with the same collection tag of the new post. New files become posts with urls based on the file name, and get automatically added to the index page. 24 | -------------------------------------------------------------------------------- /_includes/cta.pug: -------------------------------------------------------------------------------- 1 | section.cta 2 | a(href="/posts/how-much-does-kinopio-cost/") 3 | button Pricing 4 | a(href="https://kinopio.club") 5 | button.button-to-kinopio 6 | span Use Kinopio → 7 | -------------------------------------------------------------------------------- /_includes/default.pug: -------------------------------------------------------------------------------- 1 | --- 2 | pageTitle: Kinopio Help 3 | pageSearchIsVisible: true 4 | currentPage: help 5 | showFooter: true 6 | --- 7 | html(lang="en" style='background-color:' + backgroundColor) 8 | head 9 | title !{title} 10 | meta(charset="utf-8") 11 | meta(name="viewport" content="width=device-width, initial-scale=1.0") 12 | meta(name="description" content="Help site for Kinopio, the spatial thinking tool for building new ideas and solving hard problems.") 13 | link(rel="stylesheet" href="/styles/styles.css") 14 | body(style='background-color:' + backgroundColor) 15 | .content-wrap 16 | header 17 | .title 18 | a(href='/') 19 | img.hidden(src="/assets/logo-hover.png") 20 | img.hidden(src="/assets/logo-active.png") 21 | .logo 22 | h1 !{pageTitle} 23 | 24 | include nav.pug 25 | 26 | if pageSearchIsVisible 27 | .search 28 | form 29 | img#search(src="/assets/search.svg") 30 | input(placeholder="Search") 31 | img#remove.remove(src="/assets/add.svg") 32 | 33 | main(class=pageClass) !{content} 34 | if showFooter 35 | include footer.pug 36 | // p 37 | // a(href="https://github.com/kinopio-club/kinopio-help") View Source 38 | 39 | canvas#background 40 | canvas#page-background 41 | 42 | canvas.auto-paint#canvas-intro 43 | canvas.auto-paint#canvas-collaboration 44 | canvas.auto-paint#canvas-images 45 | canvas.auto-paint#canvas-tags 46 | canvas.auto-paint#canvas-comments 47 | canvas.auto-paint#canvas-mobile-left 48 | canvas.auto-paint#canvas-mobile-right 49 | canvas.auto-paint#canvas-cta-bottom 50 | 51 | script(src="/assets/js/fuzzy-min.js") 52 | script(src="/assets/js/search.js") 53 | script(src="/assets/js/magic-paint.js") 54 | if pageTitle === 'About Kinopio' 55 | script(src="/assets/js/recorded-strokes.js") 56 | script(src="/assets/js/auto-paint.js") 57 | -------------------------------------------------------------------------------- /_includes/footer.pug: -------------------------------------------------------------------------------- 1 | footer#footer 2 | img.froggo(src="/assets/froggo.png") 3 | 4 | p 5 | a(href="https://kinopio.club") 6 | button.button-to-kinopio Kinopio → 7 | 8 | .sections 9 | section 10 | h3 Contact Support 11 | ul 12 | li 13 | a(href="mailto:hi@kinopio.club") 14 | span.extended-text Mail  15 | span hi@kinopio.club 16 | li 17 | a(href="https://forum.kinopio.club") Support Forum 18 | li 19 | a(href="https://discord.gg/h2sR45Nby8") Discord 20 | 21 | section 22 | h3 Spread the word 23 | ul 24 | li 25 | a(href="https://www.producthunt.com/posts/kinopio") 26 | span.extended-text Featured on  27 | span ProductHunt 28 | li 29 | a(href="https://alternativeto.net/software/kinopio/about") 30 | span.extended-text Like on  31 | span AlternativeTo 32 | li 33 | a(href="https://yourstack.com/products/kinopio") 34 | span.extended-text Stack on  35 | span YourStack 36 | -------------------------------------------------------------------------------- /_includes/layouts/about.pug: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default.pug 3 | title: About Kinopio 4 | --- 5 | 6 | article.about 7 | section.what-is-kinopio 8 | h1 Spatial Thinking for New Ideas and Hard Problems 9 | 10 | video.intro-video#intro-video(autoplay loop muted playsinline) 11 | source(src="/assets/about/intro.mp4") 12 | p Get your thoughts out and visually connect them together. Kinopio works the way your mind works. 13 | 14 | 15 | section.cta-top 16 | p No sign up required. 17 | include /cta.pug 18 | 19 | 20 | section.uses 21 | span For 22 | .badge.use(data-type="mind-mapping") Mind Mapping 23 | .badge.use(data-type="research") Research 24 | .badge.use(data-type="meetings") Meetings 25 | .badge.use(data-type="mood-boards") Mood Boards 26 | .badge.use(data-type="journaling") Journaling 27 | .badge.use(data-type="note-taking") Note Taking 28 | span and 29 | a.badge.use(data-type="templates") Lots More 30 | 31 | // Examples, toggled with js 32 | 33 | // Mind Mapping 34 | .example.mind-mapping(data-type="mind-mapping") 35 | .triangle 36 | figure 37 | img(src="/assets/about/example-mind-map.png") 38 | figcaption 39 | p Express, organize, and make sense of your thoughts and feelings by capturing and visually connecting related ideas together. 40 | // a(href="https://kinopio.club/mind-map-u2Zc1bR0q7bRb16-K5o6X") 41 | // button Use Mind Mapping → 42 | // Research 43 | .example.research(data-type="research") 44 | .triangle 45 | figure 46 | img(src="/assets/about/example-research.png") 47 | figcaption 48 | p Gather notes, and connect them to their source URLs. Drag in files, like PDFs, to keep everything together. Categorize and label similar concepts with [[tags]]. 49 | p Spatially organized information that’s easy to retrieve helps you get over anxiety and procrastination. 50 | // a(href="https://kinopio.club/research-ZHoXccPyfmTu7FMueXUEP") 51 | // button Use Research → 52 | // Meetings 53 | .example.meetings(data-type="meetings") 54 | .triangle 55 | figure 56 | video(autoplay loop muted playsinline) 57 | source(src="/assets/about/example-meeting.mp4") 58 | figcaption 59 | p Run engaging meetings and retrospectives that lead to clarity and actionable next steps. 60 | p Kinopio makes thinking transparent, collaborative, and sharable – which leads to better decisions and better products. 61 | // a(href="https://kinopio.club/meeting-b87U9WETGvl17BrKNsqDH") 62 | // button Use Meeting → 63 | // Mood Boards 64 | .example.mood-boards(data-type="mood-boards") 65 | .triangle 66 | figure 67 | video(autoplay loop muted playsinline) 68 | source(src="/assets/about/example-mood-board.mp4") 69 | figcaption 70 | p Collect visual inspiration to evoke a vibe and a direction for your next big project. 71 | p 72 | img.icon.arena(src="/assets/arena.svg") 73 | span You can also import Are.na Channels 74 | // a(href="https://kinopio.club/mood-board-GgDOqKvEEzTA93EYmAZrn") 75 | // button Use Mood Board → 76 | // Journaling 77 | .example.journaling(data-type="journaling") 78 | .triangle 79 | figure 80 | video(autoplay loop muted playsinline) 81 | source(src="/assets/about/example-journal.mp4") 82 | figcaption 83 | p Create daily journal spaces to reflect on your life and moments. 84 | p Personalize your journal to fit your goals with custom prompts and themed prompt packs which present something new each time. 85 | // a(href="https://kinopio.club/journal-aKbPUalz4zHLqGwpDncDI") 86 | // button Use Journal → 87 | // Note Taking 88 | .example.note-taking(data-type="note-taking") 89 | .triangle 90 | figure 91 | img(src="/assets/about/example-note-taking.png") 92 | figcaption 93 | p Making beautiful notes isn’t just fun – taking notes by mapping and grouping related concepts spatially makes knowledge inherently more meaningful and memorable. 94 | p Organizing information non-linearly, like our brains do, reduces the amount of effort needed learn and remember knowledge. 95 | // a(href="https://kinopio.club/note-taking-BXblLMDGVn-mmRG9IUMeb") 96 | // button Use Note Taking → 97 | // Lots More (Templates) 98 | .example.templates(data-type="templates") 99 | .triangle 100 | figure 101 | video(autoplay loop muted playsinline) 102 | source(src="/assets/about/example-explore.mp4") 103 | figcaption 104 | p 105 | img.icon.sunglasses(src="/assets/sunglasses.svg") 106 | span Explore more templates and cool spaces created by the community. 107 | p Including, spaces for project planning, database modelling, to-dos, outlining, roadmaps, grocery lists, and more… 108 | 109 | p Basically, for figuring stuff out – by yourself or collaboratively. 110 | a(href="/guides") 111 | button More Guides 112 | 113 | 114 | section.features 115 | h2 Create Lively Freeform Spaces 116 | 117 | .grid-container 118 | 119 | .grid-item#feature-collaboration(data-section="collaboration") 120 | p Real-Time Collaboration 121 | video(autoplay loop muted playsinline) 122 | source(src="/assets/about/feature-collaboration.mp4") 123 | .grid-item#feature-images(data-section="images") 124 | p Images and Links 125 | video(autoplay loop muted playsinline) 126 | source(src="/assets/about/feature-images-and-links.mp4") 127 | .grid-item#feature-tags(data-section="tags") 128 | p [[Tags]] 129 | video(autoplay loop muted playsinline) 130 | source(src="/assets/about/feature-tags.mp4") 131 | .grid-item#feature-comments(data-section="comments") 132 | p ((Comments)) 133 | video(autoplay loop muted playsinline) 134 | source(src="/assets/about/feature-comments.mp4") 135 | 136 | p Desktop and Mobile Apps 137 | video.mobile-video#feature-mobile(autoplay loop muted playsinline data-section="mobile") 138 | source(src="/assets/about/mobile.mp4") 139 | 140 | 141 | section.cta-bottom#cta-bottom(data-section="cta-bottom") 142 | p No sign up required. Export your data at any time. 143 | include /cta.pug 144 | 145 | a(href="https://www.producthunt.com/posts/kinopio") 146 | img.producthunt-badge(src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=276179&theme=dark&period=daily" alt="Kinopio on ProductHunt") 147 | 148 | 149 | section.about-me 150 | h2 About the Creator 151 | 152 | p Hi, my name is Pirijan and I'm the creator of Kinopio. Previously, I was the co-creator of Glitch.com. I write about building software at 153 | span= ' ' 154 | a(href="https://pketh.org") pketh.org 155 | span . 156 | 157 | p I believe in building ethical, economically-sustainable, 158 | span= ' ' 159 | a(href="https://pketh.org/organic-software") organic software 160 | span= ' ' 161 | span that's designed by artists, built by craftspeople, and funded by the people who enjoy it. 162 | 163 | p 164 | img.icon.sunglasses(src="/assets/sunglasses.svg") 165 | span Some of my spaces: 166 | .spaces 167 | a.badge(href="https://kinopio.club/computing-happiness-2021-SrLvfAPsBIsor4g9iIW7D") 168 | .user 169 | span Computing Happiness 170 | a.badge(href="https://kinopio.club/kinopio-architecture-and-costs-JOGXFJ0FEMpS3crbh6U9k") 171 | .user 172 | span Kinopio Architecture and Costs 173 | a.badge(href="https://kinopio.club/-kinopio-roadmap-6TRE21gchHI7alHLuwzd5") 174 | .user 175 | span Kinopio Roadmap 176 | 177 | p I hope you enjoy using Kinopio and find it useful, 178 | 179 | p – 180 | img.signature(src="/assets/about/signature.png") 181 | 182 | 183 | script(src="/assets/js/examples.js") 184 | -------------------------------------------------------------------------------- /_includes/layouts/api.pug: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default.pug 3 | --- 4 | 5 | // colors match api h2s in styles.styl 6 | - items = [ {name: 'All', link: '#all', color: 'khaki'}, {name: 'Users', link: '#users', color: '#b9a8ff'}, {name: 'Spaces', link: '#spaces', color: 'pink'}, {name: 'Cards', link: '#cards', color: 'violet'}, {name: 'Connections', link: '#connections', color: 'salmon'}, {name: 'Connection Types', link: '#connection-types', color: 'burlywood'}, {name: 'Boxes', link: '#boxes', color: 'lightskyblue'}, {name: 'Tags', link: '#tags', color: 'mediumaquamarine'}, {name: 'Notifications', link: '#notifications', color: 'darkseagreen'}, {name: 'Other', link: '#other', color: 'cadetblue'} ] 7 | 8 | ul.api-contents 9 | each item in items 10 | li 11 | a(href=item.link style=`background: ${item.color}`) 12 | span #{item.name} 13 | 14 | article.api 15 | span !{content} 16 | script(src="/assets/js/api.js") 17 | -------------------------------------------------------------------------------- /_includes/layouts/guides-post.pug: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default.pug 3 | --- 4 | article(style=`color: ${textColor}`) 5 | a(href="/guides") 6 | button 7 | span Guides 8 | 9 | .category 10 | .badge(class=`${tagClass}`) #{tags[1]} 11 | 12 | h1 #{title} 13 | 14 | aside.info 15 | section.title 16 | p 17 | .user(style=`background-color: ${userColor}`) 18 | if userUrl 19 | a(href=`${userUrl}`) 20 | span #{userName} 21 | else 22 | span #{userName} 23 | section 24 | a(href=spaceUrl) 25 | p #{spaceName} 26 | 27 | span !{content} 28 | 29 | 30 | .kinopio-embed 31 | .embed-title #{userShortName || userName}'s space 32 | .badge Live Embed 33 | iframe(src=`${spaceEmbedUrl}`) 34 | 35 | -------------------------------------------------------------------------------- /_includes/layouts/guides.pug: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default.pug 3 | 4 | --- 5 | 6 | 7 | p.intro(style=`color: ${textColor}`) Some of the ways people use Kinopio: 8 | 9 | p 10 | img.icon.updated(src="https://blog.kinopio.club/assets/updated.gif") 11 | span The guides have been moved to the  12 | a(href="https://blog.kinopio.club") Kinopio Blog -------------------------------------------------------------------------------- /_includes/layouts/index.pug: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default.pug 3 | --- 4 | 5 | mixin posts(collection) 6 | // Search Attributes 7 | - let titles = '' 8 | each post in collections[collection] 9 | - titles = titles + ',' + post.data.title 10 | // Section Title 11 | h2(data-posts=titles) #{collection} 12 | //- Posts 13 | //- alphabeticallySorted defined in .eleventy.js 14 | ul 15 | each post in collections.alphabeticallySorted 16 | if post.data.tags 17 | if post.data.tags.includes(collection) 18 | li(data-title=post.data.title) 19 | a(href=post.url style={background: post.data.color}) 20 | span #{post.data.title} 21 | 22 | 23 | section#hello 24 | p 25 | a(href="https://kinopio.club") Kinopio 26 | span  is the spatial thinking tool for building ideas and solving hard problems. Create spaces to brainstorm, research, plan and take notes. 27 | // p Get your thoughts out and visually connect them together. Kinopio works the way your mind works. 28 | 29 | .row 30 | a(href="/about") 31 | button About Kinopio 32 | a(href="#footer") 33 | button Contact Support 34 | 35 | section.overview#quickStart 36 | h2 Quick Start 37 | .articles 38 | article 39 | p 40 | span Click to add cards 41 | video(autoplay loop muted playsinline width="300" height="200") 42 | source(src="/assets/overview/1.mp4") 43 | 44 | article 45 | p 46 | span Drag cards to move them 47 | video(autoplay loop muted playsinline width="300" height="200") 48 | source(src="/assets/overview/2.mp4") 49 | 50 | article 51 | p 52 | span Drag to connect cards together 53 | video(autoplay loop muted playsinline width="300" height="200") 54 | source(src="/assets/overview/3.mp4") 55 | 56 | article 57 | p 58 | span Paint select to edit together 59 | video(autoplay loop muted playsinline width="300" height="200") 60 | source(src="/assets/overview/4.mp4") 61 | 62 | section#index.index 63 | - let collection 64 | 65 | - collection = 'How to Use' 66 | +posts(collection) 67 | 68 | - collection = 'Advanced Use' 69 | +posts(collection) 70 | 71 | - collection = 'Getting Around' 72 | +posts(collection) 73 | 74 | - collection = 'Collaboration' 75 | +posts(collection) 76 | 77 | - collection = 'About Kinopio' 78 | +posts(collection) 79 | 80 | - collection = 'Community' 81 | +posts(collection) 82 | 83 | - collection = 'Importing and Exporting' 84 | +posts(collection) 85 | 86 | - collection = 'Policies and Privacy' 87 | +posts(collection) 88 | 89 | - collection = 'Press' 90 | +posts(collection) 91 | 92 | - collection = 'User Settings' 93 | +posts(collection) 94 | 95 | - collection = 'Troubleshooting' 96 | +posts(collection) 97 | -------------------------------------------------------------------------------- /_includes/layouts/post.pug: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default.pug 3 | --- 4 | article 5 | a(href="/") 6 | button 7 | span Help Topics 8 | 9 | h1 #{title} 10 | span !{content} 11 | -------------------------------------------------------------------------------- /_includes/nav.pug: -------------------------------------------------------------------------------- 1 | nav 2 | .segmented-buttons 3 | a(href="/") 4 | button(class={active: currentPage === 'help'}) 5 | span Help 6 | //- a(href="/guides") 7 | //- button(class={active: currentPage === 'guides'}) 8 | //- span Guides 9 | a(href="/api") 10 | button(class={active: currentPage === 'api'}) 11 | span API 12 | a(href="/about") 13 | button(class={active: currentPage === 'about'}) 14 | span About 15 | 16 | a(href="https://blog.kinopio.club") 17 | button Blog 18 | 19 | a(href="https://kinopio.club") 20 | button.button-to-kinopio Kinopio → 21 | -------------------------------------------------------------------------------- /about/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: "layouts/about.pug" 3 | pageTitle: 'About Kinopio' 4 | pageSearchIsVisible: false 5 | currentPage: about 6 | --- 7 | -------------------------------------------------------------------------------- /assets/about/example-explore.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/example-explore.mp4 -------------------------------------------------------------------------------- /assets/about/example-journal.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/example-journal.mp4 -------------------------------------------------------------------------------- /assets/about/example-meeting.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/example-meeting.mp4 -------------------------------------------------------------------------------- /assets/about/example-mind-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/example-mind-map.png -------------------------------------------------------------------------------- /assets/about/example-mood-board.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/example-mood-board.mp4 -------------------------------------------------------------------------------- /assets/about/example-note-taking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/example-note-taking.png -------------------------------------------------------------------------------- /assets/about/example-research.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/example-research.png -------------------------------------------------------------------------------- /assets/about/feature-collaboration.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/feature-collaboration.mp4 -------------------------------------------------------------------------------- /assets/about/feature-comments.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/feature-comments.mp4 -------------------------------------------------------------------------------- /assets/about/feature-images-and-links.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/feature-images-and-links.mp4 -------------------------------------------------------------------------------- /assets/about/feature-tags.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/feature-tags.mp4 -------------------------------------------------------------------------------- /assets/about/intro.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/intro.mp4 -------------------------------------------------------------------------------- /assets/about/mobile.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/mobile.mp4 -------------------------------------------------------------------------------- /assets/about/signature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/about/signature.png -------------------------------------------------------------------------------- /assets/add.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/anon-avatar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/app-icon-mac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/app-icon-mac.png -------------------------------------------------------------------------------- /assets/arena.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/cat.png -------------------------------------------------------------------------------- /assets/down-arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/email.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/email.gif -------------------------------------------------------------------------------- /assets/fonts/Greenhouse-Aureum.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/fonts/Greenhouse-Aureum.woff2 -------------------------------------------------------------------------------- /assets/fonts/JeanLuc-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/fonts/JeanLuc-Bold.woff2 -------------------------------------------------------------------------------- /assets/fonts/OsakaMono-Kinopio.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/fonts/OsakaMono-Kinopio.woff2 -------------------------------------------------------------------------------- /assets/fonts/Recoleta-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/fonts/Recoleta-Bold.woff2 -------------------------------------------------------------------------------- /assets/fonts/Recoleta-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/fonts/Recoleta-Regular.woff2 -------------------------------------------------------------------------------- /assets/froggo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/froggo.png -------------------------------------------------------------------------------- /assets/garden-flower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/garden-flower.png -------------------------------------------------------------------------------- /assets/heart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/js/api.js: -------------------------------------------------------------------------------- 1 | console.log('🌹 api script ready') 2 | 3 | // const elements = document.querySelectorAll('code') 4 | // elements.forEach(element => { 5 | // if (element.innerText === 'GET') { element.className = 'get-label' } 6 | // if (element.innerText === 'POST') { element.className = 'post-label' } 7 | // if (element.innerText === 'PATCH') { element.className = 'patch-label' } 8 | // if (element.innerText === 'DELETE') { element.className = 'delete-label' } 9 | // }) 10 | 11 | const tables = document.querySelectorAll('table') 12 | tables.forEach(element => { 13 | let prevElement = element.previousElementSibling 14 | let className = prevElement.classList[1] 15 | if (!className) { 16 | prevElement = element.previousElementSibling.previousElementSibling 17 | className = prevElement.classList[1] 18 | } 19 | if (!className) { 20 | prevElement = element.previousElementSibling.previousElementSibling.previousElementSibling 21 | className = prevElement.classList[1] 22 | } 23 | element.outerHTML = `
${element.outerHTML}
` 24 | }) -------------------------------------------------------------------------------- /assets/js/auto-paint.js: -------------------------------------------------------------------------------- 1 | const autoPaintStrokeColor = '#abfcec' // cyan 2 | let autoPaintCanvases = {} 3 | let autoPaintContexts = {} 4 | let currentAutoStroke = {} 5 | let isAutoPaintingSections = {} 6 | let isElapsedTimeUpdated = {} 7 | let sectionRequestIds = {} 8 | 9 | 10 | const initialRecordedStrokes = JSON.stringify(recordedStrokes) 11 | startPaintingIntro() 12 | 13 | window.onresize = throttle(200, function (event) { 14 | // cancel animations 15 | const requestIds = Object.keys(sectionRequestIds) 16 | requestIds.forEach(requestId => { 17 | window.cancelAnimationFrame(requestId) 18 | }) 19 | // clear canvases 20 | const canvases = Object.keys(autoPaintCanvases) 21 | canvases.forEach(canvasName => { 22 | initAutoPaintCanvas(canvasName) 23 | }) 24 | // reset state 25 | recordedStrokes = JSON.parse(initialRecordedStrokes) 26 | autoPaintCanvases = {} 27 | autoPaintContexts = {} 28 | isAutoPaintingSections = {} 29 | isElapsedTimeUpdated = {} 30 | sectionRequestIds = {} 31 | currentAutoStroke = {} 32 | startPaintingIntro() 33 | }) 34 | 35 | 36 | // utils 37 | 38 | 39 | function initAutoPaintCanvas (canvasName) { 40 | autoPaintCanvases[canvasName] = document.getElementById(`canvas-${canvasName}`) 41 | autoPaintCanvases[canvasName].classList.add('hidden') 42 | const body = document.body 43 | const html = document.documentElement 44 | const pageWidth = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth) 45 | const pageHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight) 46 | autoPaintCanvases[canvasName].width = pageWidth 47 | autoPaintCanvases[canvasName].height = pageHeight 48 | autoPaintCanvases[canvasName].classList.remove('hidden') 49 | console.log('💐 auto paint ready', canvasName) 50 | } 51 | 52 | function initContext (contextName) { 53 | autoPaintContexts[contextName] = autoPaintCanvases[contextName].getContext('2d') 54 | autoPaintContexts[contextName].scale(2,2) 55 | autoPaintContexts[contextName].strokeStyle = autoPaintStrokeColor 56 | autoPaintContexts[contextName].lineWidth = 10 57 | autoPaintContexts[contextName].lineCap = autoPaintContexts[contextName].lineJoin = 'round' 58 | currentAutoStroke[contextName] = [] 59 | } 60 | 61 | function shouldStartNewStrokeIfCurrentStrokeIsEmpty(strokes, currentStroke) { 62 | const prevStrokesLength = strokes.length 63 | strokes = strokes.filter(stroke => Boolean(stroke.length)) 64 | const newStrokesLength = strokes.length 65 | if (prevStrokesLength > newStrokesLength) { 66 | currentStroke = [] 67 | } 68 | return { strokes, currentStroke } 69 | } 70 | 71 | function paintStroke(contextName) { 72 | if (currentAutoStroke[contextName].length < 2) { return } 73 | autoPaintContexts[contextName].beginPath() 74 | autoPaintContexts[contextName].moveTo(currentAutoStroke[contextName][0].x, currentAutoStroke[contextName][0].y) 75 | currentAutoStroke[contextName].forEach((point) => { 76 | autoPaintContexts[contextName].lineTo(point.x, point.y) 77 | }) 78 | autoPaintContexts[contextName].stroke() 79 | } 80 | 81 | function positionStrokes({ element, side, sectionName, offset }) { 82 | offset = offset || { x: 0, y: 0 } 83 | const rect = element.getBoundingClientRect() 84 | let strokesWidth = 0 85 | let strokesHeight = 0 86 | recordedStrokes[sectionName].forEach(stroke => { 87 | stroke.forEach(point => { 88 | const pointSide = point.side || side 89 | const x = point.x + autoPaintContexts[sectionName].lineWidth 90 | if (x > strokesWidth && pointSide === 'left') { 91 | strokesWidth = x 92 | } 93 | const y = point.y + autoPaintContexts[sectionName].lineWidth 94 | if (y > strokesHeight && pointSide === 'top') { 95 | strokesHeight = y 96 | } 97 | }) 98 | }) 99 | const rectSide = { 100 | right: { 101 | x: Math.round(rect.x + rect.width) / 2 + offset.x, 102 | y: Math.round(rect.y) / 2 + offset.y 103 | }, 104 | left: { 105 | x: rect.x / 2 - strokesWidth + offset.x, 106 | y: rect.y / 2 + offset.y 107 | }, 108 | top: { 109 | x: rect.x / 2 + offset.x, 110 | y: rect.y / 2 - strokesHeight + offset.y 111 | }, 112 | bottom: { 113 | x: rect.x / 2 + offset.x, 114 | y: Math.round(rect.y + rect.height) / 2 + offset.y 115 | }, 116 | overlap: { 117 | x: rect.x / 2 + offset.x, 118 | y: rect.y / 2 + offset.y 119 | } 120 | } 121 | recordedStrokes[sectionName] = recordedStrokes[sectionName].map(stroke => { 122 | return stroke.map(point => { 123 | const pointSide = point.side || side 124 | point.x = point.x + rectSide[pointSide].x 125 | point.y = point.y + rectSide[pointSide].y + (window.scrollY / 2) 126 | return point 127 | }) 128 | }) 129 | } 130 | 131 | 132 | function autoPaint(timestamp, sectionName, skipDelay) { 133 | if (!isElapsedTimeUpdated[sectionName] || skipDelay) { 134 | recordedStrokes[sectionName] = updateElapsedTime(recordedStrokes[sectionName], timestamp) 135 | isElapsedTimeUpdated[sectionName] = true 136 | console.log('▶️', sectionName, recordedStrokes[sectionName]) 137 | } 138 | let stroke = recordedStrokes[sectionName][0] 139 | stroke = stroke.filter(point => { 140 | if (point.elapsedTime <= timestamp) { 141 | currentAutoStroke[sectionName].push(point) 142 | return false 143 | } else { 144 | return true 145 | } 146 | }) 147 | recordedStrokes[sectionName][0] = stroke 148 | const newStrokes = shouldStartNewStrokeIfCurrentStrokeIsEmpty(recordedStrokes[sectionName], currentAutoStroke[sectionName]) 149 | recordedStrokes[sectionName] = newStrokes.strokes 150 | currentAutoStroke[sectionName] = newStrokes.currentStroke 151 | paintStroke(sectionName, currentAutoStroke[sectionName]) 152 | if (recordedStrokes[sectionName].length) { 153 | sectionRequestIds[sectionName] = window.requestAnimationFrame(function(timestamp) { autoPaint(timestamp, sectionName) }) 154 | } else { 155 | window.cancelAnimationFrame(sectionRequestIds[sectionName]) 156 | } 157 | } 158 | 159 | 160 | // Intro 161 | 162 | function normalizeElapsedTimeIntroStrokes() { 163 | let lastTime 164 | let delta = 0 165 | recordedStrokes.intro = recordedStrokes.intro.map(stroke => { 166 | return stroke.map((point, index) => { 167 | point.elapsedTime = point.elapsedTime + delta 168 | if (point.elapsedTime < lastTime) { 169 | delta = lastTime - point.elapsedTime 170 | point.elapsedTime = point.elapsedTime + delta 171 | } 172 | lastTime = point.elapsedTime 173 | return point 174 | }) 175 | }) 176 | } 177 | 178 | function startPaintingIntro() { 179 | if (sectionRequestIds.intro) { 180 | window.cancelAnimationFrame(sectionRequestIds.intro) 181 | } 182 | const aboutVideoElement = document.getElementById('intro-video') 183 | normalizeElapsedTimeIntroStrokes() 184 | startPaintingSection({ 185 | sectionName: 'intro', 186 | side: 'left', 187 | element: aboutVideoElement, 188 | }) 189 | } 190 | 191 | 192 | // Trigger Features 193 | 194 | function updateElapsedTime(strokes, timestamp) { 195 | return strokes.map(stroke => { 196 | return stroke.map(point => { 197 | point.elapsedTime = point.elapsedTime + timestamp 198 | return point 199 | }) 200 | }) 201 | } 202 | 203 | function startPaintingSection({ sectionName, side, element, skipDelay, offset }) { 204 | initAutoPaintCanvas(sectionName) 205 | initContext(sectionName) 206 | positionStrokes({ element, side, sectionName, offset }) 207 | sectionRequestIds.tags = window.requestAnimationFrame(function(timestamp) { autoPaint(timestamp, sectionName, skipDelay) }) 208 | } 209 | 210 | let handleIntersect = (entries, observer) => { 211 | entries.forEach(entry => { 212 | if (entry.isIntersecting) { 213 | const section = entry.target.dataset.section 214 | if (!isAutoPaintingSections[section]) { 215 | console.log('🚁', section) 216 | isAutoPaintingSections[section] = true 217 | if (section === 'collaboration') { 218 | startPaintingSection({ 219 | sectionName: 'collaboration', 220 | side: 'left', 221 | element: sectionCollaborationElement 222 | }) 223 | } else if (section === 'images') { 224 | startPaintingSection({ 225 | sectionName: 'images', 226 | side: 'right', 227 | element: sectionImagesElement 228 | }) 229 | } else if (section === 'tags') { 230 | startPaintingSection({ 231 | sectionName: 'tags', 232 | side: 'left', 233 | element: sectionTagsElement 234 | }) 235 | } else if (section === 'comments') { 236 | startPaintingSection({ 237 | sectionName: 'comments', 238 | side: 'right', 239 | element: sectionCommentsElement 240 | }) 241 | } else if (section === 'mobile') { 242 | startPaintingSection({ 243 | sectionName: 'mobile-left', 244 | side: 'left', 245 | element: sectionMobileElement 246 | }) 247 | startPaintingSection({ 248 | sectionName: 'mobile-right', 249 | side: 'right', 250 | element: sectionMobileElement 251 | }) 252 | } else if (section === 'cta-bottom') { 253 | const ctaButtonElement = document.querySelector('#cta-bottom .button-to-kinopio') 254 | startPaintingSection({ 255 | sectionName: 'cta-bottom', 256 | side: 'overlap', 257 | element: ctaButtonElement, 258 | offset: { 259 | x: -10, 260 | y: -10 261 | } 262 | }) 263 | } 264 | } 265 | } 266 | }) 267 | } 268 | 269 | const sectionCollaborationElement = document.getElementById('feature-collaboration') 270 | const sectionImagesElement = document.getElementById('feature-images') 271 | const sectionTagsElement = document.getElementById('feature-tags') 272 | const sectionCommentsElement = document.getElementById('feature-comments') 273 | const sectionMobileElement = document.getElementById('feature-mobile') 274 | const sectionCtaElement = document.getElementById('cta-bottom') 275 | 276 | let observer = new IntersectionObserver(handleIntersect, { 277 | threshold: 0.7 278 | }) 279 | observer.observe(sectionCollaborationElement) 280 | observer.observe(sectionImagesElement) 281 | observer.observe(sectionTagsElement) 282 | observer.observe(sectionCommentsElement) 283 | 284 | observer = new IntersectionObserver(handleIntersect, { 285 | threshold: 0.5 286 | }) 287 | observer.observe(sectionMobileElement) 288 | 289 | observer = new IntersectionObserver(handleIntersect, { 290 | threshold: 1 291 | }) 292 | observer.observe(sectionCtaElement) 293 | 294 | -------------------------------------------------------------------------------- /assets/js/examples.js: -------------------------------------------------------------------------------- 1 | console.log('🍉 examples ready') 2 | 3 | const uses = document.querySelectorAll('.use') 4 | const examples = document.querySelectorAll('.example') 5 | 6 | function hideAll () { 7 | uses.forEach(use => { 8 | use.classList.remove('active') 9 | }) 10 | examples.forEach(example => { 11 | example.classList.add('hidden') 12 | }) 13 | } 14 | 15 | function updateTrianglePosition(use, example) { 16 | const triangleWidth = 16 17 | const useRect = use.getBoundingClientRect() 18 | const exampleRect = example.getBoundingClientRect() 19 | const triangle = example.querySelector('.triangle') 20 | const positionX = (useRect.x - exampleRect.x) + (useRect.width / 2) - (triangleWidth / 2) 21 | triangle.style.left = positionX + 'px' 22 | } 23 | 24 | function showExample (type) { 25 | console.log('🍅', type, uses) 26 | const use = Array.from(uses).find(element => element.dataset.type === type) 27 | const example = Array.from(examples).find(element => element.dataset.type === type) 28 | use.classList.add('active') 29 | example.classList.remove('hidden') 30 | updateTrianglePosition(use, example) 31 | } 32 | 33 | 34 | hideAll() 35 | showExample('mind-mapping') 36 | uses.forEach(use => { 37 | use.addEventListener('click', (event) => { 38 | hideAll() 39 | showExample(event.target.dataset.type) 40 | }) 41 | }) 42 | 43 | -------------------------------------------------------------------------------- /assets/js/fuzzy-min.js: -------------------------------------------------------------------------------- 1 | (function(){var root=this;var fuzzy={};if(typeof exports!=="undefined"){module.exports=fuzzy}else{root.fuzzy=fuzzy}fuzzy.simpleFilter=function(pattern,array){return array.filter(function(str){return fuzzy.test(pattern,str)})};fuzzy.test=function(pattern,str){return fuzzy.match(pattern,str)!==null};fuzzy.match=function(pattern,str,opts){opts=opts||{};var patternIdx=0,result=[],len=str.length,totalScore=0,currScore=0,pre=opts.pre||"",post=opts.post||"",compareString=opts.caseSensitive&&str||str.toLowerCase(),ch;pattern=opts.caseSensitive&&pattern||pattern.toLowerCase();for(var idx=0;idx ms) { 70 | lastCallTime = now 71 | fn.apply(this, arguments) 72 | } 73 | } 74 | } 75 | 76 | function redrawAllStrokes () { 77 | if (allStrokes.length === 0) { return } 78 | allStrokes = allStrokes.filter(stroke => { 79 | return stroke.length 80 | }) 81 | allStrokes.forEach(stroke => { 82 | pageContext.beginPath() 83 | pageContext.moveTo(stroke[0].x + stroke[0].scrollX, stroke[0].y + stroke[0].scrollY) 84 | stroke.forEach((point) => { 85 | pageContext.lineTo(point.x + point.scrollX, point.y + point.scrollY) 86 | }) 87 | pageContext.stroke() 88 | }) 89 | } 90 | 91 | function updateCanvas() { 92 | if (isTouch) { return } 93 | initCanvas() 94 | initPageCanvas() 95 | redrawAllStrokes() 96 | } 97 | 98 | // start 99 | 100 | window.onmousedown = function (event) { 101 | if (event.button !== 0) { return } 102 | startStroke() 103 | } 104 | window.ontouchstart = function (event) { 105 | isTouch = true 106 | startStroke() 107 | } 108 | function startStroke () { 109 | currentPaintStroke = [] 110 | isDrawing = true 111 | if (!recordStartTime) { 112 | recordStartTime = Date.now() 113 | } 114 | } 115 | 116 | // draw 117 | 118 | window.onmousemove = throttle(10, function (event) { 119 | addPointToStroke({ x: event.clientX / 2, y: event.clientY / 2 }) 120 | }) 121 | window.ontouchmove = throttle(10, function (event) { 122 | addPointToStroke({ x: event.touches[0].clientX / 2, y: event.touches[0].clientY / 2 }) 123 | }) 124 | function addPointToStroke ({ x, y }) { 125 | if (!isDrawing) { return } 126 | currentPaintStroke.push({ 127 | x, 128 | y, 129 | scrollX: prevScroll.x / 2, 130 | scrollY: prevScroll.y / 2, 131 | elapsedTime: Date.now() - recordStartTime, 132 | }) 133 | drawCurrentStroke() 134 | } 135 | function drawCurrentStroke () { 136 | if (currentPaintStroke.length === 0) { return } 137 | context.beginPath() 138 | context.moveTo(currentPaintStroke[0].x, currentPaintStroke[0].y) 139 | currentPaintStroke.forEach((point) => { 140 | context.lineTo(point.x, point.y) 141 | }) 142 | context.stroke() 143 | } 144 | 145 | // stop 146 | 147 | window.onmouseup = function (event) { endStroke() } 148 | window.ontouchend = function (event) { endStroke() } 149 | function endStroke () { 150 | allStrokes.push(currentPaintStroke) 151 | if (isRecording) { 152 | const recordedStrokes = allStrokes.map(stroke => { 153 | return stroke.map(point => { 154 | delete point.scrollX 155 | delete point.scrollY 156 | return point 157 | }) 158 | }) 159 | console.log('⏺', allStrokes) 160 | } 161 | pageCanvas.getContext('2d').drawImage(canvas, prevScroll.x / 2, prevScroll.y / 2, canvas.width / 2, canvas.height / 2) 162 | currentPaintStroke = [] 163 | isDrawing = false 164 | context.clearRect(0,0, canvas.width, canvas.height) 165 | } 166 | 167 | // resize 168 | 169 | window.onresize = throttle(100, function (event) { 170 | prevScroll = { 171 | x: window.scrollX, 172 | y: window.scrollY 173 | } 174 | updateCanvas() 175 | }) 176 | 177 | // scroll 178 | 179 | window.onscroll = function (event) { 180 | prevScroll = { 181 | x: window.scrollX, 182 | y: window.scrollY 183 | } 184 | } 185 | 186 | const resizeObserver = new ResizeObserver(entries => { 187 | // console.log('Body height changed', entries[0].target.clientHeight) 188 | console.log('canvas height updated') 189 | updateCanvas() 190 | }) 191 | resizeObserver.observe(document.body) 192 | -------------------------------------------------------------------------------- /assets/js/search.js: -------------------------------------------------------------------------------- 1 | console.log('🍍 search ready') 2 | 3 | // Search 4 | 5 | let params = (new URL(document.location)).searchParams 6 | let search = params.get("search") 7 | const searchIcon = document.querySelector('.search #search') 8 | const removeIcon = document.querySelector('.search #remove') 9 | const searchForm = document.querySelector('.search form') 10 | const searchInput = document.querySelector('.search input') 11 | const quickStartSection = document.querySelector('section#quickStart') 12 | const headers = document.querySelectorAll('section#index h2') 13 | const posts = document.querySelectorAll('section#index li') 14 | 15 | if (search) { 16 | searchInput.value = search 17 | filterPage(search) 18 | } 19 | 20 | if (searchInput) { 21 | searchIcon.addEventListener ('click', () => { 22 | searchInput.focus() 23 | }) 24 | removeIcon.addEventListener ('click', () => { 25 | clearFilter() 26 | }) 27 | searchInput.addEventListener ('input', (event) => { 28 | const value = searchInput.value 29 | if (value) { 30 | filterPage(value) 31 | } else { 32 | clearFilter() 33 | } 34 | }) 35 | searchForm.addEventListener ('submit', (event) => { 36 | event.preventDefault() 37 | const value = searchInput.value 38 | const searchUrl = `${window.location.origin}?search=${value}` 39 | window.location.href = searchUrl 40 | }) 41 | } 42 | 43 | function filterPage (value) { 44 | if (!quickStartSection) { return } 45 | quickStartSection.classList.add('hidden') 46 | filterHeaders(value) 47 | filterPosts(value) 48 | } 49 | 50 | function filterHeaders (value) { 51 | headers.forEach(header => { 52 | let postsList = header.dataset.posts 53 | postsList = postsList.split(',').filter(Boolean) 54 | const results = fuzzy.filter(value, postsList) 55 | if (results.length === 0) { 56 | header.classList.add('hidden') 57 | } else { 58 | header.classList.remove('hidden') 59 | } 60 | }) 61 | } 62 | 63 | function filterPosts (value) { 64 | posts.forEach(post => { 65 | let postTitle = post.dataset.title 66 | const results = fuzzy.filter(value, [postTitle]) 67 | if (results.length === 0) { 68 | post.classList.add('hidden') 69 | } else { 70 | post.classList.remove('hidden') 71 | } 72 | }) 73 | } 74 | 75 | function clearFilter () { 76 | searchInput.value = "" 77 | if (!quickStartSection) { return } 78 | headers.forEach(header => header.classList.remove('hidden')) 79 | posts.forEach(post => post.classList.remove('hidden')) 80 | quickStartSection.classList.remove('hidden') 81 | } -------------------------------------------------------------------------------- /assets/logo-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/logo-active.png -------------------------------------------------------------------------------- /assets/logo-base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/logo-base.png -------------------------------------------------------------------------------- /assets/logo-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/logo-hover.png -------------------------------------------------------------------------------- /assets/moon-phases/full-moon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/moon-phases/new-moon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/moon-phases/waning-crescent.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/moon-phases/waning-gibbous.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/moon-phases/waning-quarter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/moon-phases/waxing-crescent.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/moon-phases/waxing-gibbous.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/moon-phases/waxing-quarter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/new.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/new.gif -------------------------------------------------------------------------------- /assets/overview/1.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/overview/1.mp4 -------------------------------------------------------------------------------- /assets/overview/2.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/overview/2.mp4 -------------------------------------------------------------------------------- /assets/overview/3.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/overview/3.mp4 -------------------------------------------------------------------------------- /assets/overview/4.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/overview/4.mp4 -------------------------------------------------------------------------------- /assets/posts/Journaling/journal-creation.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/Journaling/journal-creation.mp4 -------------------------------------------------------------------------------- /assets/posts/Journaling/journal-prompts-and-weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/Journaling/journal-prompts-and-weather.png -------------------------------------------------------------------------------- /assets/posts/Journaling/journal-prompts-habits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/Journaling/journal-prompts-habits.png -------------------------------------------------------------------------------- /assets/posts/Journaling/journal-weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/Journaling/journal-weather.png -------------------------------------------------------------------------------- /assets/posts/Journaling/prompt-of-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/Journaling/prompt-of-day.png -------------------------------------------------------------------------------- /assets/posts/add-to-explore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/add-to-explore.png -------------------------------------------------------------------------------- /assets/posts/add-url-to-card.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/add-url-to-card.mp4 -------------------------------------------------------------------------------- /assets/posts/arena-space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/arena-space.png -------------------------------------------------------------------------------- /assets/posts/assign-connection-type.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/assign-connection-type.mp4 -------------------------------------------------------------------------------- /assets/posts/card-checkboxes.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/card-checkboxes.mp4 -------------------------------------------------------------------------------- /assets/posts/card-count-exempted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/card-count-exempted.png -------------------------------------------------------------------------------- /assets/posts/card-details-checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/card-details-checkbox.png -------------------------------------------------------------------------------- /assets/posts/card-styles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/card-styles.png -------------------------------------------------------------------------------- /assets/posts/create-cards.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/create-cards.mp4 -------------------------------------------------------------------------------- /assets/posts/create-connection.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/create-connection.mp4 -------------------------------------------------------------------------------- /assets/posts/edit-card.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/edit-card.mp4 -------------------------------------------------------------------------------- /assets/posts/example-space.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/example-space.mp4 -------------------------------------------------------------------------------- /assets/posts/export-cards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/export-cards.png -------------------------------------------------------------------------------- /assets/posts/export-space.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/export-space.mp4 -------------------------------------------------------------------------------- /assets/posts/export-space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/export-space.png -------------------------------------------------------------------------------- /assets/posts/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/export.png -------------------------------------------------------------------------------- /assets/posts/favorite-space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/favorite-space.png -------------------------------------------------------------------------------- /assets/posts/favorite-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/favorite-user.png -------------------------------------------------------------------------------- /assets/posts/favorites.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/favorites.mp4 -------------------------------------------------------------------------------- /assets/posts/filters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/filters.png -------------------------------------------------------------------------------- /assets/posts/groups/add-group-from-user.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/groups/add-group-from-user.mp4 -------------------------------------------------------------------------------- /assets/posts/groups/add-space-to-group.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/groups/add-space-to-group.mp4 -------------------------------------------------------------------------------- /assets/posts/groups/group-details-invite-button.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/groups/group-details-invite-button.webp -------------------------------------------------------------------------------- /assets/posts/groups/group-members.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/groups/group-members.webp -------------------------------------------------------------------------------- /assets/posts/groups/group-members2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/groups/group-members2.webp -------------------------------------------------------------------------------- /assets/posts/groups/group-members3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/groups/group-members3.webp -------------------------------------------------------------------------------- /assets/posts/groups/group-overview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/groups/group-overview.webp -------------------------------------------------------------------------------- /assets/posts/groups/share-invite-button.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/groups/share-invite-button.webp -------------------------------------------------------------------------------- /assets/posts/guides/life-tasks1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/life-tasks1.png -------------------------------------------------------------------------------- /assets/posts/guides/life-tasks2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/life-tasks2.png -------------------------------------------------------------------------------- /assets/posts/guides/life-tasks3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/life-tasks3.png -------------------------------------------------------------------------------- /assets/posts/guides/life-tasks4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/life-tasks4.png -------------------------------------------------------------------------------- /assets/posts/guides/life-tasks5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/life-tasks5.png -------------------------------------------------------------------------------- /assets/posts/guides/life-tasks6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/life-tasks6.png -------------------------------------------------------------------------------- /assets/posts/guides/routine-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/routine-1.png -------------------------------------------------------------------------------- /assets/posts/guides/routine-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/routine-2.png -------------------------------------------------------------------------------- /assets/posts/guides/routine-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/routine-3.png -------------------------------------------------------------------------------- /assets/posts/guides/routine-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/routine-4.png -------------------------------------------------------------------------------- /assets/posts/guides/routine-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/routine-5.png -------------------------------------------------------------------------------- /assets/posts/guides/track-media/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/track-media/1.png -------------------------------------------------------------------------------- /assets/posts/guides/track-media/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/track-media/2.png -------------------------------------------------------------------------------- /assets/posts/guides/track-media/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/track-media/3.png -------------------------------------------------------------------------------- /assets/posts/guides/track-media/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/guides/track-media/4.png -------------------------------------------------------------------------------- /assets/posts/hide-links.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/hide-links.mp4 -------------------------------------------------------------------------------- /assets/posts/image-card-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/image-card-url.png -------------------------------------------------------------------------------- /assets/posts/image-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/image-card.png -------------------------------------------------------------------------------- /assets/posts/import-arena.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/import-arena.png -------------------------------------------------------------------------------- /assets/posts/import-space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/import-space.png -------------------------------------------------------------------------------- /assets/posts/invite-collaborators.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/invite-collaborators.png -------------------------------------------------------------------------------- /assets/posts/journal_prompts_and_weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/journal_prompts_and_weather.png -------------------------------------------------------------------------------- /assets/posts/live-spaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/live-spaces.png -------------------------------------------------------------------------------- /assets/posts/long-press.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/long-press.mp4 -------------------------------------------------------------------------------- /assets/posts/minimap/minimap-pan.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/minimap/minimap-pan.mp4 -------------------------------------------------------------------------------- /assets/posts/minimap/minimap.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/minimap/minimap.webp -------------------------------------------------------------------------------- /assets/posts/minimap/minimap2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/minimap/minimap2.webp -------------------------------------------------------------------------------- /assets/posts/move-cards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/move-cards.png -------------------------------------------------------------------------------- /assets/posts/multiple-urls-in-card.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/multiple-urls-in-card.mp4 -------------------------------------------------------------------------------- /assets/posts/new-spaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/new-spaces.png -------------------------------------------------------------------------------- /assets/posts/offline-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/offline-dialog.png -------------------------------------------------------------------------------- /assets/posts/paint-move-cards.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/paint-move-cards.mp4 -------------------------------------------------------------------------------- /assets/posts/press-kit/example-space.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/press-kit/example-space.mp4 -------------------------------------------------------------------------------- /assets/posts/press-kit/kinopio-assets.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/press-kit/kinopio-assets.zip -------------------------------------------------------------------------------- /assets/posts/press-kit/logo-base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/press-kit/logo-base.png -------------------------------------------------------------------------------- /assets/posts/press-kit/real-time-collaboration.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/press-kit/real-time-collaboration.mp4 -------------------------------------------------------------------------------- /assets/posts/press-kit/screenrec1.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/press-kit/screenrec1.mp4 -------------------------------------------------------------------------------- /assets/posts/press-kit/screenrec2.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/press-kit/screenrec2.mp4 -------------------------------------------------------------------------------- /assets/posts/press-kit/screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/press-kit/screenshot1.png -------------------------------------------------------------------------------- /assets/posts/privacy-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/privacy-dialog.png -------------------------------------------------------------------------------- /assets/posts/removed-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/removed-dialog.png -------------------------------------------------------------------------------- /assets/posts/tag-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/tag-details.png -------------------------------------------------------------------------------- /assets/posts/tag-sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/tag-sidebar.png -------------------------------------------------------------------------------- /assets/posts/teams/addspaceteam.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/teams/addspaceteam.mp4 -------------------------------------------------------------------------------- /assets/posts/teams/addteam.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/teams/addteam.mp4 -------------------------------------------------------------------------------- /assets/posts/teams/addteam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/teams/addteam.png -------------------------------------------------------------------------------- /assets/posts/teams/removeteamuser.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/teams/removeteamuser.mp4 -------------------------------------------------------------------------------- /assets/posts/teams/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/teams/share.png -------------------------------------------------------------------------------- /assets/posts/teams/spaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/teams/spaces.png -------------------------------------------------------------------------------- /assets/posts/teams/teaminvite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/teams/teaminvite.png -------------------------------------------------------------------------------- /assets/posts/teams/teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/teams/teams.png -------------------------------------------------------------------------------- /assets/posts/templates-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/templates-dialog.png -------------------------------------------------------------------------------- /assets/posts/templates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/templates.png -------------------------------------------------------------------------------- /assets/posts/user-pricing-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/posts/user-pricing-dialog.png -------------------------------------------------------------------------------- /assets/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/sunglasses.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/tatiana-egoshina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/tatiana-egoshina.png -------------------------------------------------------------------------------- /assets/templates.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/title.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Help&Support 5 | Created with Sketch. 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/topography.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/topography.png -------------------------------------------------------------------------------- /assets/updated.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kinopio-club/kinopio-help/cd5f61c776184d15d9be2108f348dd25a9785b56/assets/updated.gif -------------------------------------------------------------------------------- /guides/diary-hobbies.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Diary your Hobbies 3 | thumbnail: 'https://us-east-1.linodeobjects.com/kinopio-uploads/c_i7PmfhVwLnqf4TZjJJ4/1CF63A87-BC91-435E-A171-4B0BFB9DC618-180x.jpg' 4 | 5 | tags: ['Guides', 'Life'] 6 | tagClass: 'life' 7 | 8 | userName: Hailey Mah 9 | userShortName: Hailey 10 | # userUrl: https://www.are.na/cucumber-salad 11 | userColor: '#a6fce5' 12 | spaceName: 🧶 Crochet diary 13 | spaceUrl: https://kinopio.club/-crochet-diary-4h1bgB0tQ_S2QD7P0Iyp1 14 | spaceEmbedUrl: https://kinopio.club/embed/?spaceId=4h1bgB0tQ_S2QD7P0Iyp1&zoom=50 15 | 16 | # static 17 | pageTitle: Kinopio Guides 18 | layout: "layouts/guides-post.pug" 19 | pageSearchIsVisible: false 20 | currentPage: guides 21 | pageClass: 'guides' 22 | --- 23 | 24 | > Why make a crochet diary? 25 | 26 | ![](https://us-east-1.linodeobjects.com/kinopio-uploads/Cm-FNJ91MlT3jskdfExMd/Screen-Shot-2022-05-12-at-11.28.13-AM.png) 27 | 28 | I started learning to crochet in early 2022 as a way to continually build new skills, exercise creativity and have fun making stuff. Since there’s such an overwhelming amount of crocheting knowledge and patterns out there, I wanted to make a crochet diary to collect inspiration from around the web and document what I learned through each new project. 29 | 30 | Although popular crafting sites like [Ravelry](https://www.ravelry.com/tour/getting-started) exist, I wanted my space to be more casual since I’m still a newbie to this hobby. Plus I wanted my documentation to be a mini creative project in itself! Kinopio struck that perfect balance of being playful to use, while still having robust features for organizing my ideas. 31 | 32 | > What are some important parts of a crochet diary? 33 | 34 | ![](https://us-east-1.linodeobjects.com/kinopio-uploads/xaiurXSzPbiZxq_CPIOkI/2.png) 35 | 36 | I wanted this space to have a mix of two things: structured areas to organize my projects, and unstructured mood-boarding to casually save ideas. It was important to strike this balance, as too much structure can get bureaucratic, but not enough becomes hard to navigate. The space also had to feel fun to maintain and update. 37 | 38 | > How do you collect and organize info on your space? 39 | 40 | ![](https://us-east-1.linodeobjects.com/kinopio-uploads/t_RymVT8ePvyYq66gAhUj/Screen-Shot-2022-05-12-at-11.25.45-AM.png) 41 | 42 | Usually I come across crochet patterns and inspiration on Instagram, YouTube and Etsy — the algorithms are serving me endless crochet projects! I save ideas I like under my “Wishlist” card, which acts like a bulletin board. The ideas just hang out there, and once I’m ready to begin a new project I’ll pick something from that collection. 43 | 44 | For projects, the space is organized like a kanban board. There’s a template of several cards at the top of my space that I copy when starting a new project. For each project, I’ll add cards with the crochet pattern/instructions, the yarn used, and any customizations I make along the way. I use tags to mark projects as current or finished. Once I’m finished, I use the “lock” feature for that project’s cards so that it stays put. 45 | 46 | > Any other tips or advice? 47 | 48 | Use the Kinopio [browser extension](posts/extensions/) and [mobile app](/posts/apps/) shortcuts. I’m trying to get into the habit of saving inspiring links or images to Kinopio right away when I come across them, and then going in and organizing it later. 49 | 50 | Also, join the [Kinopio Discord](https://discord.gg/h2sR45Nby8)! I really like learning about new features as they roll out, and it’s helped inspire me to use Kinopio in new ways. 51 | -------------------------------------------------------------------------------- /guides/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Kinopio Guides 3 | pageTitle: Kinopio Guides 4 | color: '#d3badf' 5 | layout: "layouts/guides.pug" 6 | pageSearchIsVisible: false 7 | currentPage: guides 8 | pageClass: 'guides' 9 | --- 10 | -------------------------------------------------------------------------------- /guides/life-tasks.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Track To-dos and Tasks 3 | thumbnail: 'https://us-east-1.linodeobjects.com/kinopio-uploads/je8YRuTxdRCot6P3kdEEE/909B725B-B8D0-4372-B96C-92BB46D1C166.png' 4 | 5 | tags: ['Guides', 'Life'] 6 | tagClass: 'life' 7 | 8 | userName: Pirijan, Kinopio Creator 9 | userShortName: Pirijan 10 | # userUrl: https://pketh.org 11 | userColor: '#9ff7f0' 12 | spaceName: 🌱 Life tasks 13 | spaceUrl: https://kinopio.club/-life-tasks-Y1X79OS5gRjU5x7buJfhB 14 | spaceEmbedUrl: https://kinopio.club/embed/?spaceId=Y1X79OS5gRjU5x7buJfhB&zoom=50 15 | 16 | # static 17 | pageTitle: Kinopio Guides 18 | layout: "layouts/guides-post.pug" 19 | pageSearchIsVisible: false 20 | currentPage: guides 21 | pageClass: 'guides' 22 | --- 23 | 24 | > Why make a life tasks space? 25 | 26 | ![](/assets/posts/guides/life-tasks6.png) 27 | 28 | I created my space because I needed a place to plan and decide what to fix or build next. It's basically my 'home' space on Kinopio. 29 | 30 | Whenever I've used traditional todo list apps, I'd inevitably hit a point where it feels like I'm buried under the weight of an infinite task list – that's usually when I'd usually start looking for another app, then repeat the problem all over again. 31 | 32 | My favorite thing about using a space for this instead is how the clutter of this space reflects the clutter of my mind. When I organize my space, it feels like I'm organizing my mind. 33 | 34 | > What are some important parts of life tasks? 35 | 36 | ![](/assets/posts/guides/life-tasks1.png) 37 | 38 | Your personal space should reflect your personality. Besides tasks and ideas, add personal photos, a [background](https://help.kinopio.club/posts/changing-space-background/), and cool [images](https://help.kinopio.club/posts/adding-images-to-cards/) that inspire you right now. 39 | 40 | Your system doesn't have to make sense to anyone but you, and you can use [privacy](https://help.kinopio.club/posts/privacy-options/) options to make it as private or public as you want. 41 | 42 | > How do you collect and organize info on your space? 43 | 44 | ![](/assets/posts/guides/life-tasks5.png) 45 | 46 | I'd start by just writing out all the tasks floating inside my head. Use [checkboxes](https://help.kinopio.club/posts/checkbox-cards/) to turn the short-term actions into tasks. 47 | 48 | I like to keep my urgent cards in the top left where I always see them, and move longer-term cards outwards where I'll later decide whether to turn them into tasks, break them down into projects, or just remove them. 49 | 50 | > Any other tips of advice? 51 | 52 | Besides all that, every morning I'll use card frames and colors to emphasize what I want to tackle today. 53 | 54 | If your space starts to feel a bit cramped, that's a good sign. Yesterday's aspirations can become tomorrow's burdens so it's a good idea to occasionally prune ideas and tasks that you don't want to do anymore. [Paint selecting](https://help.kinopio.club/posts/selecting-and-bulk-actions/) a bunch of things you no longer want to do and removing them is really satisfying, cathartic even. 55 | -------------------------------------------------------------------------------- /guides/personal-homepage.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Make a Personal Homepage 3 | thumbnail: 'https://us-east-1.linodeobjects.com/kinopio-uploads/9rRtxhnVQIoB9DB4ARrzk/IMG-6842.JPG' 4 | 5 | tags: ['Guides', 'Life'] 6 | tagClass: 'life' 7 | 8 | userName: Ana Luisa Figueiredo 9 | userShortName: Ana Luisa 10 | userUrl: https://www.are.na/cucumber-salad 11 | userColor: '#9ab2f9' 12 | spaceName: PERSONAL PAGE 🥒 13 | spaceUrl: https://kinopio.club/personal-page--zo6_3wXV6ou5aKbiv_2j0 14 | spaceEmbedUrl: https://kinopio.club/embed/?spaceId=zo6_3wXV6ou5aKbiv_2j0&zoom=50 15 | 16 | # backgroundColor: '#e8efdd' 17 | # textColor: '#20401e' 18 | 19 | pageTitle: Kinopio Guides 20 | layout: "layouts/guides-post.pug" 21 | pageSearchIsVisible: false 22 | currentPage: guides 23 | pageClass: 'guides' 24 | --- 25 | 26 | > Why make a personal homepage? 27 | 28 | ![](https://us-east-1.linodeobjects.com/kinopio-uploads/lSPRfuMIohfFTYKh2klny/Screen-Shot-2022-05-10-at-10.52.51-AM.png) 29 | 30 | I needed a space where I could discuss what I have been up to because I do a lot of research and work as a graphic designer. 31 | 32 | I wanted something where I could have less work then setting up a whole website, but where I could make it look like me – an environment where people would literally feel like they're in my head, so the idea for a personal space was perfect for my needs. 33 | 34 | > What are some important parts of a personal space? 35 | 36 | ![](https://us-east-1.linodeobjects.com/kinopio-uploads/dYi7hmQUstFrkZqvLNl7h/Screen-Shot-2022-05-10-at-10.51.50-AM.png) 37 | 38 | First that it is highly customizable, which Kinopio definitely is. Second that's easy to update, and third, easy to navigate as well. I'm a super nest-y person and that extends to my online presence, so I like having a space that I can really give a personal atmosphere to. 39 | 40 | > Where do your images come from? 41 | 42 | ![](https://us-east-1.linodeobjects.com/kinopio-uploads/g-InbBEnJKN3Ht6SIPlM_/Screen-Shot-2022-05-10-at-10.52.20-AM.png) 43 | 44 | I get most of my images from [are.na](https://are.na) at the moment, and the card image search is very useful. I also got lots of stuff from my old tumblr blog haha, I think that's a very specific source tho… 45 | 46 | > Any other tips or advice? 47 | 48 | I think there's a kind of understanding of the tool that you only get after you use it for a while, or if you get in touch with people who understand it better. A way to really create a visually communicative space that's also easy to navigate. After I joined the [Kinopio discord](https://discord.gg/h2sR45Nby8) and saw what ppl were doing there I completely changed my personal page layout and that was only possible because seeing other people's uses opened my mind to understanding Kinopio better. 49 | -------------------------------------------------------------------------------- /guides/plan-routine.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Plan a Routine 3 | thumbnail: 'https://us-east-1.linodeobjects.com/kinopio-uploads/w8u3i1DkndBjZK_zTrcMx/original-ec2a9485be78ff188621d5f74b4596e5.gif' 4 | 5 | tags: ['Guides', 'Life'] 6 | tagClass: 'life' 7 | 8 | userName: Ana Luisa Figueiredo 9 | userShortName: Ana Luisa 10 | userUrl: https://www.are.na/cucumber-salad 11 | userColor: '#9ab2f9' 12 | spaceName: 🧴 Skincare Journal 13 | spaceUrl: https://kinopio.club/-skincare-journal-_3EaIFjJi87YO8jIMBni6 14 | spaceEmbedUrl: https://kinopio.club/embed/?spaceId=_3EaIFjJi87YO8jIMBni6&zoom=50 15 | 16 | # static 17 | pageTitle: Kinopio Guides 18 | layout: "layouts/guides-post.pug" 19 | pageSearchIsVisible: false 20 | currentPage: guides 21 | pageClass: 'guides' 22 | --- 23 | 24 | > Why make a space for your skincare routine? 25 | 26 | ![](/assets/posts/guides/routine-1.png) 27 | 28 | ![](/assets/posts/guides/routine-2.png) 29 | 30 | I am very interested in skincare and I've been doing it seriously for three years. I post a lot about it on my personal Instagram account, but because Instagram is so messy and a lot of the content disappears after 24 hours many of my friends don't have the opportunity to properly catch up with my skincare lore. 31 | 32 | On a space I can make it visually clear what my current routine is, and what I think of each product I use. That way when people ask me about my routine I can just redirect them to that space, its extremely convenient. 33 | 34 | > What are some important parts of a routine space? 35 | 36 | 37 | ![](/assets/posts/guides/routine-4.png) 38 | 39 | First, it _must_ be simple to update because the thing about skincare is that you change products and impressions about the products all the time. 40 | 41 | Second thing is structuring the skincare routine between day and night. 42 | 43 | I think third is offering honest reviews if you are interested in sharing the space with publicly. 44 | 45 | 46 | > How do you collect and organize info on your space? 47 | 48 | 49 | ![](/assets/posts/guides/routine-5.png) 50 | 51 | I got all the images from my [are.na personal skincare channel](https://www.are.na/cucumber-salad). I think the most important Kinopio feature for organising information on this space is the [filter](/posts/filters/). 52 | 53 | I got the idea of making a filter by brand thing from a space made by [@humdrum](https://kinopio.club/-the-central-hub-nTfUzCV1vnLedTHiWGWcE) and I think its brilliant. 54 | 55 | > Any other tips of advice? 56 | 57 | I think adding [comments](/posts/commenting/) is super useful because skincare has a lot of nuance and adding the comments make your impressions, intentions, and details about the routine clearer. I started adding the comments only a month after I was done with the space because I felt like some information could be misunderstood. 58 | -------------------------------------------------------------------------------- /guides/present-research.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Present Research 3 | thumbnail: 'https://us-east-1.linodeobjects.com/kinopio-uploads/4beIktLVjg8NZOAAS1c2q/photo-baignade-vilette.jpg' 4 | 5 | tags: ['Guides', 'Work And School'] 6 | tagClass: 'life' 7 | 8 | userName: Arthur Guillot - Le Goff 9 | userShortName: Arthur 10 | userUrl: https://twitter.com/arthur_glg 11 | userColor: '#fcc38e' 12 | spaceName: RoadMAP 13 | spaceUrl: https://kinopio.club/roadmap-8T7fT70jptMVhiHrGtZT1 14 | spaceEmbedUrl: https://kinopio.club/embed/?spaceId=8T7fT70jptMVhiHrGtZT1&zoom=50 15 | 16 | # static 17 | pageTitle: Kinopio Guides 18 | layout: "layouts/guides-post.pug" 19 | pageSearchIsVisible: false 20 | currentPage: guides 21 | pageClass: 'guides' 22 | --- 23 | 24 | > Why present your research in Kinopio? 25 | 26 |

27 | 30 |

31 | 32 | I am a researcher in fluid mechanics and during my current project, I felt like I got a little lost in what I was doing. I needed to take stock and organize everything I had seen, heard and produced. The idea of a road map, almost in the form of a mind map, corresponded well to the way a research project is organized (a guideline that breaks down into ideas). Kinopio is a perfect tool for that. Its simplicity allows to build very quickly something that works in its content as well as in its form. 33 | 34 | The text limits encourage you to be concise in what you want to write and adding links, images, colors or GIFs makes the place feels nice. As I worked on my road map, the idea of doing something [shareable](https://help.kinopio.club/posts/sharing-spaces/) came up. 35 | 36 | Now I think I will put a link to Kinopio in my project report. A tool that served as a help for me, will also be a good tool for future readers to get an overview of the project. 37 | 38 | > What are some important parts of a research presentation? 39 | 40 | ![](https://us-east-1.linodeobjects.com/kinopio-uploads/xHnQRzyEpQWWW0E7u_dm6/roadmap-2.png) 41 | 42 | First, the look. This initiative is something that has been added to the mass of work I already have. I wanted a tool where globally only the content takes time and where the style is very simple to format. Secondly, I wanted a very malleable tool where I could move things around as I wanted to. And third a web page that can be available in almost every device! 43 | 44 | > How do you collect and organize info for your space? 45 | 46 | ![](https://us-east-1.linodeobjects.com/kinopio-uploads/zw0XkTPaROYE049o-IlpH/roadmap3.png) 47 | 48 | Most of the info and images come from me. But I love to use the [GIF finder](https://help.kinopio.club/posts/adding-images-to-cards/), it brings life to the page. 49 | 50 | > Any other tips or advice? 51 | 52 | I think that you should not hesitate to test things with Kinopio. Move the blocks! Try different layouts and styles! After a while you will find your page appealing and you will be a little proud of what you have done! 53 | -------------------------------------------------------------------------------- /guides/track-media.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Track your Media 3 | thumbnail: 'https://us-east-1.linodeobjects.com/kinopio-uploads/NsD0a-_W9Fm0efAiN0Wqe/original-d275ff849851d43d1236ce36b6e21944.gif' 4 | 5 | tags: ['Guides', 'Life'] 6 | tagClass: 'life' 7 | 8 | userName: Kevin aka humdrum 9 | userShortName: humdrum 10 | userUrl: https://kinopio.club/-the-central-hub-nTfUzCV1vnLedTHiWGWcE 11 | userColor: '#127fec' 12 | spaceName: 📺 2022 TV Space 13 | spaceUrl: https://kinopio.club/-2022-tv-space-ASdzyKj7YTRM5XQjwJErx 14 | spaceEmbedUrl: https://kinopio.club/embed/?spaceId=ASdzyKj7YTRM5XQjwJErx&zoom=50 15 | 16 | # static 17 | pageTitle: Kinopio Guides 18 | layout: "layouts/guides-post.pug" 19 | pageSearchIsVisible: false 20 | currentPage: guides 21 | pageClass: 'guides' 22 | --- 23 | 24 | > Why use Kinopio to track the TV shows you've watched and want to watch? 25 | 26 | ![](/assets/posts/guides/track-media/1.png) 27 | 28 | The goal of my [TV](https://kinopio.club/-2022-tv-space-ASdzyKj7YTRM5XQjwJErx) and [Movie](https://kinopio.club/-2022-movie-space-FOg4-Gs1LjALNSKXVBgQy) spaces is to have a quick place to see what’s out and available to watch and what’s coming out over the course of the year. 29 | 30 | There are a lot of blogs that do lists by month or things that they are anticipating, but I wanted something more comprehensive and tailored to my own tastes so I had to make it myself. I also wanted something that would be super flexible, visual, but also easy to update and re-organize, all while being connected to a broader web of note-taking and tracking. 31 | 32 | Now that I have these spaces, it’s also become a place to track what I’ve watched, and start to formulate ranked lists that will lead to my end of year Top Tens. As a bonus, because of the flexibility Kinopio offers, I can carve out a little room in the TV space to show a little weekly schedule of what’s currently airing and on what day. 33 | 34 | > What are some important parts of a media tracking space? 35 | 36 | ![](/assets/posts/guides/track-media/2.png) 37 | 38 | [Tagging](https://help.kinopio.club/posts/tags/) has been a wonderful way to keep track of all of the shows and movies over the years and where else I might have touched upon them in another space. 39 | 40 | If I talk about a show or movie in another space, or log when I’ve watched it in my journals, I can use the tag to be able to cross-reference and see the history of my viewing, where else it might have come up, and then easily jump to those other spaces. 41 | 42 | > How do you collect and organize info on your space? 43 | 44 | ![](/assets/posts/guides/track-media/3.png) 45 | 46 | ![](/assets/posts/guides/track-media/4.png) 47 | 48 | [Headers and color](https://help.kinopio.club/posts/styling-cards/) were two things I never thought I would ever really use on Kinopio, but they have been critical to organizing the spaces. 49 | 50 | I can use the Headers to lay the space out and organize it in a way that’s relatively easy to track and follow. 51 | 52 | I even use colors a little bit in the headings for decoration, but where colors have been even more useful is in color coding shows or movies, by my interest level and if I’ve watched it yet or am planning to. 53 | 54 | > Any other tips of advice? 55 | 56 | The alignment buttons have been absolutely critical to keeping my sanity and spaces neatly organized. I can quickly move things around and reorder on a whim without having to worry about organization. Then with a quick highlight and press of the alignment button, poof, neatly organized once again. 57 | 58 | Lastly, I can’t talk about these spaces without talking about [Links](https://help.kinopio.club/posts/backlinks/). Links have allowed me to build a personal wiki around media and my life. Both my TV and Movie space are linked to in my [Media hub space](https://kinopio.club/-the-central-hub-nTfUzCV1vnLedTHiWGWcE), which links to other media spaces, and is also linked to from even more spaces. 59 | 60 | With the new [sidebar](https://twitter.com/KinopioClub/status/1527978737731608576) it’s now super convenient to bounce around spaces, going higher or deeper in the hierarchy, making connections, and keeping track of things in a detailed, but easy manner. 61 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: layouts/index.pug 3 | title: Kinopio Help 4 | --- -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kinopio-meta", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "serve": "npx @11ty/eleventy --serve --port=8081", 9 | "styles": "nodemon --exec 'stylus ./styles/styles.styl -o ./styles/styles.css'", 10 | "build": "stylus ./styles/styles.styl -o ./styles/styles.css && npx @11ty/eleventy" 11 | }, 12 | "keywords": [], 13 | "author": "pirijan", 14 | "license": "ISC", 15 | "devDependencies": { 16 | "@11ty/eleventy": "^0.12.1", 17 | "nodemon": "^2.0.12", 18 | "stylus": "^0.54.5" 19 | }, 20 | "nodemonConfig": { 21 | "watch": [ 22 | "styles/" 23 | ], 24 | "ext": "styl" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /posts/BackLinks.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Linking Spaces with Backlinks 3 | tags: ['Advanced Use'] 4 | color: '#b9a8ff' 5 | --- 6 | 7 | Use backlinks to connect your spaces together and weave your own web of knowledge 8 | 9 | - type `/` in a card to create a link to a space, or paste it's url 10 | - click `Links` to see all the spaces with links to your current space 11 | 12 | 15 | -------------------------------------------------------------------------------- /posts/Journaling.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Journaling 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | --- 6 | 7 | Add journal spaces to reflect on your life and moments! 8 | 9 | Edit the journal to fit your needs with custom prompts. 10 | 11 | 14 | 15 | ## Daily Tasks 16 | 17 | Use journals to help you remember daily tasks or habits by adding checkbox prompts. 18 | 19 | 20 | 21 | ## Weather 22 | 23 | Let Kinopio add the weather for your current location automatically. *Make sure to reactivate if you change locations!* 24 | 25 | 26 | 27 | ## Prompt of the Day 28 | 29 | Utilize Kinopio's **Prompt of the Day** to get something new to think about in each journal. Using journal prompts everyday comes with a [myriad of benefits](https://community.thriveglobal.com/journal-writing-prompts-and-why-to-do-them/) such as providing a great way to self-reflect and learn about yourself. 30 | 31 | 32 | 33 | ## Moonphases 34 | 35 | Journal spaces are displayed with moonphase icons to visually differentiate them from normal spaces, and to add a bit of romantic flair. The moon phase is a 27 day cycle, beginning and ending with a new moon. 36 | 37 |

38 | 39 | New Moon 40 |

41 | 42 |

43 | 44 | Waxing Crescent 45 |

46 | 47 |

48 | 49 | Waxing Quarter 50 |

51 | 52 |

53 | 54 | Waxing Gibbous 55 |

56 | 57 |

58 | 59 | Full Moon 60 |

61 | 62 |

63 | 64 | Waning Gibbous 65 |

66 | 67 |

68 | 69 | Waning Quarter 70 |

71 | 72 |

73 | 74 | Waning Crescent 75 |

76 | 77 | 78 | Depending on who you ask, the phase of the moon is more about [astronomy](https://spaceplace.nasa.gov/moon-phases/en/), or [astrology](https://thatverynight.com/moon-phases-meaning/). 79 | 80 | 81 | ## Pro-Tips 82 | 83 | Utilize [Space List Filters](https://help.kinopio.club/posts/filters/) to hone in on your Journal Spaces or exclude them from the list to focus on non-journals. 84 | 85 | Bookmark and use the `/new` URLs [kinopio.club/new/today](https://kinopio.club/new/today) and [kinopio.club/new/tomorrow](https://kinopio.club/new/tomorrow) to load or create daily journal spaces. 86 | 87 | ꒰◍ᐡᐤᐡ◍꒱ 88 | -------------------------------------------------------------------------------- /posts/Searching.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Searching 3 | tags: ['Getting Around'] 4 | color: 'pink' 5 | --- 6 | 7 | ## Spaces 8 | 9 | To quickly access spaces you can type to filter them by name 10 | 11 | 14 | 15 | 16 | ## Cards 17 | 18 | Currently there is no full-text search for cards, but it's on the roadmap. In the meantime you can search by pasting this script into your browser console 19 | 20 | [https://gist.github.com/pketh/a67374334f38023ad8ebffa18ef5378d](https://gist.github.com/pketh/a67374334f38023ad8ebffa18ef5378d) 21 | -------------------------------------------------------------------------------- /posts/adding-images-to-cards.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Adding Images to Cards 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | date: 2020-02-01 6 | --- 7 | 8 | ## Uploading Files 9 | 10 | You can drag and drop your own images and files onto spaces or cards. You can also use the file picker with `images → upload` (Handy on mobile). 11 | 12 | 15 | 16 | Uploads use the server, so you'll need to be signed in to use them. 17 | 18 | To keep costs sustainable, free users can upload files up to 5mb, upgraded users have no limits 19 | 20 | ## Paste in an image URL 21 | 22 | In desktop browsers you can get the URL of an image by right clicking and selecting `Copy Image Address`. On mobile, you can usually get an image URL by long pressing it and selecting the copy URL command. 23 | 24 | ![image-card-url](/assets/posts/image-card-url.png) 25 | 26 | Kinopio requires image URLs to specify image file extensions like `space.com/image.jpg`. `jpeg`, `jpg`, `png`, and `gif` format images are supported. 27 | 28 | Some websites obscure their image URLs to not include the file extension `space.com/maybe-an-image`. These will only display as links in cards. 29 | 30 | ## To view the image fullsize, click the `→` button next to the connector 31 | 32 | ![image-card](/assets/posts/image-card.png) 33 | 34 | (psst, animated gifs work great) 35 | 36 | 39 | -------------------------------------------------------------------------------- /posts/apps.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Desktop and Mobile Apps 3 | tags: ['About Kinopio'] 4 | color: 'mediumaquamarine' 5 | --- 6 | 7 | 8 | 9 | [Download desktop apps](https://dl.todesktop.com/201223j48l03cxi) for macOS, Windows, or Linux 10 | 11 | [Download iOS app](https://apps.apple.com/us/app/kinopio/id6448743101) 12 | 13 | Or add the site to your Android phone homescreen by following the instructions in `About → Apps` 14 | 15 | 18 | 19 | The desktop app makes Kinopio easier to open and create spaces without having to first open a web browser. 20 | 21 | ## Pro-Tips 22 | 23 | The desktop app supports tabs and page refreshing like a web browser. It also gives you more control over the size of your window to let you keep your tasks visible while you work. 24 | 25 | ![](https://updates.kinopio.club/kinopio-app-small.png) 26 | -------------------------------------------------------------------------------- /posts/boxes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Boxes 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | --- 6 | 7 | Boxes help you group, add structure, and guide collaborators around cards, 8 | 9 | Helpful for adding sections, groups, lists, venn diagrams, or even swimlanes to your spaces 10 | 11 | 14 | 15 | 16 | ## Pro-Tips 17 | 18 | - shift-drag to move a box without moving cards 19 | - ⌘/ctrl-click a box to select the cards inside it 20 | 21 | 24 | -------------------------------------------------------------------------------- /posts/changing-space-background.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Changing Space Background Image and Color 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | date: 2020-03-02 6 | --- 7 | 8 | ## Personalize your spaces and set the mood 9 | 10 | 13 | 14 | You can edit the background for your current space by clicking the icon next to your space name. 15 | 16 | > Backgrounds are just urls, much like images in cards, so feel free to copy in image urls from elsewhere on the web too 17 | 18 | ## Set a Tint Color 19 | 20 | Highlight backgrounds with tint colors, personalize the default wallpaper or dye any background image 21 | 22 | 23 | 24 | ## Set Defaults 25 | 26 | Prefer grids over squiggles? Or a different background color? You can change your default background for new spaces by 27 | 28 | 1. Set up a space background image and tint color that you'd like to use 29 | 2. Make it the default for new spaces in `User → Settings → Colors and Themes` 30 | 31 | 32 | 33 | > p.s. You can make your background black by setting the tint color to `#000` 34 | 35 |
36 |
37 | 38 | > p.s.s. You can find even more example backgrounds to try out in this [background test space](https://kinopio.club/space-backgrounds-Evd_H7siYsx03PkbFsa9M) 39 | -------------------------------------------------------------------------------- /posts/checkbox-cards.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Checkbox Cards 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | --- 6 | 7 | Differentiate thoughts from plans with checkbox cards, 8 | 9 | - By typing `[]` or `[x]` in a card name 10 | - With the checkbox button on a card 11 | - Or by painting to select multiple cards 12 | 13 | 16 | -------------------------------------------------------------------------------- /posts/comments.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Comments 3 | tags: ['Advanced Use'] 4 | color: '#b9a8ff' 5 | --- 6 | 7 | Type `((` to make a comment card. Comments are smaller than normal cards, letting you give feedback without feeling like you’re ‘intruding’ on the original space. 8 | 9 | 12 | 13 | You can also toggle comments for a card or a paint selection through the [Style](/posts/styling-cards/) menu. 14 | 15 | 18 | 19 | 20 | ## Pro-Tips 21 | 22 | - Completely hide comments through the [Filters](/posts/filters) menu, 23 | 24 | 27 | 28 | - You can toggle to show comment text for use when referencing them, or to increase their visual importance in the space. 29 | 30 | - Also just like adding other cards, comments you add to a space with collaborators will send them a [notification](/posts/notifications). 31 | 32 | - Comments also work great with tags, checkboxes, and frames. So you can use a use a checkbox to mark resolved cards, and form associations with content using connections and tags. 33 | 34 | Other secret uses: 35 | 36 | - Spoilers, 37 | - Choose your own adventure novels, 38 | -------------------------------------------------------------------------------- /posts/configuring-your-firewall.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Configuring your Firewall for Kinopio 3 | tags: ['Troubleshooting'] 4 | color: '#a4dfdc' 5 | --- 6 | 7 | You can configure your firewall to allow Kinopio as a trusted source by configuring host names to recognize any sub-domain of 8 | 9 | - `*.kinopio.club` 10 | - `https://kinopio-server.herokuapp.com` 11 | - `wss://kinopio-server.herokuapp.com` 12 | 13 | Also, these are the domains for Kinopio's external resources: 14 | 15 | - `https://updates.kinopio.club/` 16 | - `https://kinopio-email.us-east-1.linodeobjects.com/` 17 | - `https://kinopio-uploads.us-east-1.linodeobjects.com/` 18 | -------------------------------------------------------------------------------- /posts/creating-cards-and-connections.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Creating Cards and Connections 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | date: 2020-01-01 6 | --- 7 | 8 | Think of **cards** like individual thoughts, and ideas. New ideas and insights form when we **connect** cards to each other, whether by ourselves, or by collaborating with friends. 9 | 10 | There's no limit to number of cards and connections you can add to a space. 11 | 12 | > I like how cute and quirky it is and I'm surprised at how it's helping me organize my thoughts without even trying, It's like magic. – Raphaël Mongeau 13 | 14 | ## Click (or tap) anywhere to make new cards, then just start typing 15 | 16 | 19 | 20 | ## Click cards to edit them 21 | 22 | 25 | 26 | ## Connect cards together by dragging from the connector to anywhere on another card 27 | 28 | 31 | 32 | Besides that, there's really no right or wrong way to use Kinopio. Do what feels right. -------------------------------------------------------------------------------- /posts/delete-your-account.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Delete Your Account 3 | tags: ['User Settings'] 4 | color: '#deb1ff' 5 | --- 6 | 7 | You can permanently delete your account – including all the spaces in it. You can do this by going to `You → Settings → Remove All Your Data`. 8 | 9 | > Be careful, your data will be immediately and permanently deleted from the Kinopio database. 10 | 11 | - If you have spaces that other people are collaborating on, those spaces will no longer be accessible to them. 12 | - If you have a paid plan associated with the account, that plan will be automatically cancelled. -------------------------------------------------------------------------------- /posts/duplicating-a-space.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Duplicating a Space 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | --- 6 | 7 | You can duplicate a space by exporting, through `Share → Export → Duplicate Space` 8 | 9 | 10 | 11 | You can also duplicate other people's public spaces to create a copy that you can edit. -------------------------------------------------------------------------------- /posts/editing-connections.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Editing Connections 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | date: 2020-03-01 6 | --- 7 | 8 | ## Use connections and labels to add flexible meaning, grouping, and structure to your spaces 9 | 10 | 13 | 14 | The connection lines between cards have connection types. These connection types have a name and color that can be shared amongst the connections on your space. 15 | 16 | Painting to select multiple connections lets you assign them all to the same connection type 17 | 18 | 22 | -------------------------------------------------------------------------------- /posts/encryption.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Encryption 3 | tags: ['Policies and Privacy'] 4 | color: 'salmon' 5 | --- 6 | 7 | ## Encryption In-Flight 8 | 9 | Kinopio uses current best practices for securing your information, including encrypting data in-flight, salting/hashing user passwords, and not recording sensitive or private information in logs. 10 | 11 | ## About End-to-End Encryption 12 | 13 | Unfortunately, data is not currently end-to-end encrypted because there's no straight-forward way to encrypt data that you're able to collaborate on. 14 | 15 | If you have thoughts or ideas on encryption, please do share it on the [forum](https://forum.kinopio.club) – it's really appreciated. 16 | -------------------------------------------------------------------------------- /posts/exporting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Exporting Spaces as text, PDFs, or JSON 3 | tags: ['Importing and Exporting'] 4 | color: 'lightskyblue' 5 | --- 6 | 7 | ## Export Space 8 | 9 | You can export your space in a plain text, JSON and PDF formats via `Share → Export` 10 | 11 | 12 | 13 | ## Export Selected Cards 14 | 15 | You can also specific card names in a space by selecting them by `Painting them, then Copy` 16 | 17 | ![export-cards](https://updates.kinopio.club/copy-cards-dialog.png) 18 | 19 | ## Save as PDF 20 | 21 | Save your entire space as a PDF which you can print, send to your friends, or just keep for yourself 22 | 23 | `Share → PDF` (or `Export → PDF`) 24 | 25 | ![](https://updates.kinopio.club/save-space-pdf.png) -------------------------------------------------------------------------------- /posts/extensions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Browser Extensions and Integrations 3 | tags: ['About Kinopio'] 4 | color: 'mediumaquamarine' 5 | --- 6 | 7 | For quickly recording thoughts, inspirations, and urls to your [Inbox](/posts/inbox/) while you're out making waves on the world wide web. 8 | 9 | Download for: 10 | 11 | - [Firefox →](https://addons.mozilla.org/en-US/firefox/addon/add-to-kinopio) 12 | - [Chrome, Vivaldi, Edge, Brave →](https://chrome.google.com/webstore/detail/kinopio/hodmmkfpchpgmaemlicohlkiigpejakn) 13 | - [Safari →](https://apps.apple.com/app/add-to-kinopio/id1614926102) 14 | 15 |

16 | 17 |

18 | 19 | ## SMS, Telegram, Zapier and more Integrations 20 | 21 | Kinopio is also supported by [phonetonote](https://phonetonote.com/), which lets you add cards to your inbox via SMS, Telegram, Zapier, Email, Alfred, and more. API keys saved to phonetonote are encrypted and your messages are never stored there. 22 | 23 | ## Security and Privacy 24 | 25 |

26 | 27 |

28 | 29 | > When clicked, the browser extension prefils its card name field with the current browser tab URL. No other browser data is transmitted. 30 | 31 | > Like the rest of Kinopio, the extension contains no tracking. 32 | 33 | You can review the code for yourself on [Github](https://github.com/kinopio-club/kinopio-browser-extensions) 34 | -------------------------------------------------------------------------------- /posts/favoriting-spaces-and-people.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Favoriting Spaces and People 3 | tags: ['Community'] 4 | color: 'burlywood' 5 | --- 6 | 7 | You can bookmark spaces or people to return to later by favoriting them. 8 | 9 | ## Favorite a Space 10 | 11 | Toggle the `Favorite` button at the bottom of the screen. You can also favorite your own spaces to quickly. 12 | 13 | ![favorite-space](/assets/posts/favorite-space.png) 14 | 15 | ## Favorite a Person 16 | 17 | In a space with someone interesting, click their avatar in the header. Then, toggle the `Favorite` button. 18 | 19 | ![favorite-user](/assets/posts/favorite-user.png) 20 | 21 | ## Your Favorites 22 | 23 | Spaces and People you've favorited can be retrieved from `Spaces → Favorites → Spaces/People` 24 | 25 | 28 | -------------------------------------------------------------------------------- /posts/filters.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Filters 3 | tags: ['Getting Around'] 4 | color: 'pink' 5 | --- 6 | 7 | Filtering lets you focus on specific groups of cards that matter most to you right now. Use the `Filter` button to highlight cards that have a specified connection type or frame, and fade everything else out 8 | 9 | ![filters](/assets/posts/filters.png) 10 | -------------------------------------------------------------------------------- /posts/groups.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Groups 3 | tags: ['Advanced Use'] 4 | color: '#b9a8ff' 5 | --- 6 | 7 | Group related spaces together and share them with multiple people at once. Each Group member can see and edit all of the spaces in a Group. 8 | 9 |

10 | 11 |

12 | 13 | Groups are helpful if you want to share and collaborate often with the same people on whiteboards, brainstorms, meeting notes, and diagrams. 14 | 15 | 16 | > Only upgraded users can create groups, but any user on a group can contribute spaces to it 17 | 18 | ## Creating Groups 19 | 20 | You can create as many Groups as you'd like. Use Groups for projects, teams, or like personal folders – it's really up to you. 21 | 22 | There are two ways to create new Groups: 23 | 24 | - Through `Spaces → Groups → + Group`, 25 | - Or via `Yourself → Groups → + Group`. You'll be able to change the color and name of the Group at any time. 26 | 27 | 30 | 31 | ## Adding Spaces to Groups 32 | 33 | From your Spaces list, you can see your personal spaces as well as spaces added to your Groups. To add your own space to the Group, open your space, click the Group button, and then select a Group. 34 | 35 |

36 | 39 |

40 | 41 | Each space can only belong to a single Group. Spaces can be added to Groups by any member of that group. 42 | 43 | ## Editing Group Spaces 44 | 45 | If you see a Group space in your spaces list then you can edit it. Once you add a card to that space you'll be treated like a space collaborator and will receive notifications when new cards are added. 46 | 47 | ## Inviting Group Members 48 | 49 | Adding people to your Group is very similar to inviting them to a space. From `Yourself → Groups`, click on the name of a Group, and click `Copy Invite to Group URL`. 50 | 51 | 53 | 54 | Anyone you share the invite code with will be added to your Group. If they don't yet have a Kinopio account, they'll be added once they sign up. 55 | 56 | If the current space is in a group, the `Share` menu will also display the `Copy Invite to Group URL` button 57 | 58 | 59 | 60 | # Group User Permissions 61 | 62 | Group users can have the role of `member` or `admin`. 63 | 64 | 65 | 66 | **Members** can add their spaces to the Group, edit Group spaces, and invite other people to the Group. 67 | 68 | **Admins** can do everything members can, but they can also edit the Group itself (e.g. Group name and color), change the roles of other users on the Group, remove users from the Group. Admins can also remove the group entirely. 69 | 70 | > Removing a group returns all the spaces in it back to the original space creators 71 | 72 | ## Removing Users from the Group 73 | 74 | Open the Group details, through `Yourself → Groups → Group`. If you're a Group admin, you'll see a `✕ Remove` button under each member to remove them from the group. 75 | 76 | Removing someone from the Group immediately removes them as a collaborator from all Group spaces, and transfers ownership of their Group spaces to the Group admin. 77 | 78 | The removed group member will still have access to their account and personal spaces. 79 | -------------------------------------------------------------------------------- /posts/how-much-does-kinopio-cost.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How Much Does Kinopio Cost? (Pricing) 3 | tags: ['About Kinopio'] 4 | color: 'mediumaquamarine' 5 | --- 6 | 7 | All features of Kinopio are free to use and collaborate with, up to a limit of 100 cards and an upload file size limit of 5mb. 8 | 9 | > Kinopio costs $6/month or $60/year (USD) for unlimited cards and uploads 10 | 11 | (The price in the iOS app is a bit higher to accomodate Apple's fees. For this reason, I recommend upgrading through the website) 12 | 13 | I want the pricing to feel simple, straightforward, and obvious. 14 | 15 | 📈 Cards you add will increment the card count 16 | 17 | 📉 Cards you remove will decrement the card count 18 | 19 | 👯‍♀️ For easier collaboration, if you're editing a space that was created by an upgraded user, your card count won't increase. You can check whether your card limit will change by clicking your user icon while in a space. 20 | 21 | 22 | 23 | ## Why a Subscription? 24 | 25 | To build and maintain a service with ongoing costs that increase over time (servers etc), subscription pricing is the only economically sustainable business model to ensure that Kinopio is supported for the long-term. 26 | 27 | ## Discount for Students and Those With Financial Need 28 | 29 | I want everyone to be able to use Kinopio. If you're a student, or you can't afford the subscription because of where you live, or any other personal circumstances, please [email me](mailto:hi@kinopio.club) for a 50% discount. -------------------------------------------------------------------------------- /posts/how-your-data-is-stored.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How Your Data is Stored? 3 | tags: ['About Kinopio'] 4 | color: 'mediumaquamarine' 5 | --- 6 | 7 | ## Without an Account 8 | 9 | Your user and spaces data lives entirely on your own computer, in your browser localStorage. Because it is not sent to a server, you can't share your spaces or access your spaces from another device. 10 | 11 | 🚒 If you clear your browser's cache and delete your cookies you will be removing your kinopio data. 12 | 13 | To keep your data safe, share and collaborate, and edit your spaces from all your devices sign up for an account at any time. 14 | 15 | ## With an Account 16 | 17 | Your user and spaces data lives on both your own computer and on the kinopio servers. 18 | 19 | You can safely clear your browser cache and cookies without losing any data. 20 | 21 | ## See also 22 | 23 | - [Privacy Policy](/posts/privacy-policy/) 24 | -------------------------------------------------------------------------------- /posts/importing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Importing 3 | tags: ['Importing and Exporting'] 4 | color: 'lightskyblue' 5 | --- 6 | 7 | ## Import from Exported File 8 | 9 | You can import the JSON of exported spaces you've saved to your computer with `Share → Import → [JSON] Select File` 10 | 11 | ![import-space](/assets/posts/import-space.png) 12 | 13 | ## Importing an Are.na Channel 14 | 15 | Import [are.na](http://are.na) channels to make collaborative mood boards 16 | 17 | 18 | 19 | `Share → Import → Are.na Channel` 20 | 21 | 22 | 23 | 24 | If this is your first time using this feature, you'll be redirected to an Are.na authentication page. Afterwards you'll be redirected back to Kinopio and are able to input a channel URL to import (eg `https://www.are.na/kinopio/kinopio-moods`). 25 | 26 | > Because you've authenticated with Are.na, you're able to import any channel you have access to – including your own private channels, and all open or closed channels. 27 | 28 | ## Example Imported Channel Spaces 29 | 30 | - [Hirō Isono](https://kinopio.club/hir-isono-EGpVHhIiGZIeSi02zAUjY) 31 | -------------------------------------------------------------------------------- /posts/inbox.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Collecting Ideas in the Inbox 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | --- 6 | 7 | Use an Inbox space to collect thoughts, todos, and ideas that don't have a place to go yet. Your Inbox will appear above all your other spaces and favourites so it's always close at hand 8 | 9 | (if you don't already have an Inbox, you can add one from '+ New' button) 10 | 11 | 12 | 13 | ## Add Ideas and URLs from Anywhere 14 | 15 | Add anything to your inbox on the go with the Kinopio [browser extensions](http://localhost:8081/posts/extensions/), or through the system share sheet if you have the [iOS app](https://apps.apple.com/us/app/kinopio/id6448743101) installed 16 | -------------------------------------------------------------------------------- /posts/inviting-collaborators-to-a-space.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Inviting Collaborators to a Space 3 | tags: ['Collaboration'] 4 | color: 'violet' 5 | --- 6 | 7 | Invite Collaborators to give them edit access to the contents of your space. Inviting is especially useful for working together on `Private` spaces, but you can do it with any privacy setting. 8 | 9 | You should think of collaborators as people you fully trust because they'll be able to edit and remove almost everything in a space. 10 | 11 | > If collaborating with people you don't know or fully trust, consider changing your space privacy to `Open` and sharing the normal URL instead. That way others will only be able to add and edit the cards that they've created. 12 | 13 | ## Invite Collaborator 14 | 15 | Send someone a collaborator invite by copying the URL found in `Spaces → Invite Collaborators` 16 | 17 | ![invite-collaborators](/assets/posts/invite-collaborators.png) 18 | 19 | ## Collaborators can 20 | 21 | - Create, move, remove and edit all cards and connections 22 | - Invite other collaborators 23 | - Remove other collaborators 24 | 25 | ## But collaborators cannot 26 | 27 | - Remove the space 28 | - Rename the space 29 | - Remove the creator of the space from it -------------------------------------------------------------------------------- /posts/keyboard-shortcuts.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Keyboard Shortcuts 3 | tags: ['Getting Around'] 4 | color: 'pink' 5 | --- 6 | 7 | ## Enter and Shift-Enter to make card trees 8 | 9 | 12 | 13 | This allows you to quickly make structures like 14 | 15 | ![](https://kinopio-updates.s3.us-east-1.amazonaws.com/keyboard-shortcuts-tree.png) 16 | 17 | ## Arrow keys to focus on cards, Enter to edit 18 | 19 | 22 | 23 | ## Select, then copy and paste cards 24 | 25 | 28 | 29 | 30 | You can find a complete list of keyboard shortcuts in `About → Keyboard Shortcuts`. Or quick access them by pressing `?` while not focused on anything else. 31 | 32 | ![keyboard-shortcuts](https://kinopio-updates.s3.us-east-1.amazonaws.com/keyboard-shortcuts-list.png) 33 | -------------------------------------------------------------------------------- /posts/links-in-cards.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Links in Cards 3 | tags: ['Advanced Use'] 4 | color: '#b9a8ff' 5 | --- 6 | 7 | 10 | 11 | So you might know that adding a URL (like [spacejam.com](https://spacejam.com)) to a card enables a `→` link button on the card. 12 | 13 | ## Multiple URLs 14 | 15 | 18 | 19 | In cards with multiple URLs (e.g. images, audio, and links), if a link URL is available, the `→` card button use the link, otherwise it'll use the first URL in the card. 20 | 21 | So if I have a card with an image url and a link like: 22 | 23 | > https://us-east-1.linodeobjects.com/kinopio-uploads/prwduNJJz32Dn6C1VopLX/image.png 24 | this is an image with a link to 25 | folklore.org 26 | 27 | The `→` will link to [folklore.org](folklore.org) 28 | 29 | 30 | ## Hiding Links 31 | 32 | 35 | 36 | There are times when you might not want to display the link URL on a card, but still have a `→` button for a clickable link. 37 | 38 | You can toggle hiding links in a card by clicking the `👀 Link` button 39 | -------------------------------------------------------------------------------- /posts/locking.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Locking Cards 3 | tags: ['Advanced Use'] 4 | color: '#b9a8ff' 5 | --- 6 | 7 | Prevent cards from being accidentally moved, edited, or deleted by locking them. 8 | 9 | Helpful for backgrounds, grouping your space into sections, or for defining content that your collaborators shouldn't edit. 10 | 11 | Lock cards or multiple selected cards through `Styles → Lock`. Unlock cards by clicking the `Lock button` on the card. 12 | 13 | 16 | -------------------------------------------------------------------------------- /posts/managing-collaborators.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Managing Collaborators 3 | tags: ['Collaboration'] 4 | color: 'violet' 5 | --- 6 | 7 | You, or your collaborators, can view the list of space collaborators from `Share`. 8 | 9 | You'll be able to get more info on each collaborator, or favorite them, as well as remove them from the space. 10 | 11 | ![collaborators](https://kinopio-updates.s3.us-east-1.amazonaws.com/invite-collaborators.png) 12 | 13 | > For security reasons, when you remove a collaborator from a space unused invite URLs will become invalid. You'll need to send out a new invite URL. This won't affect existing collaborators. -------------------------------------------------------------------------------- /posts/minimap.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Minimap 3 | tags: ['Getting Around'] 4 | color: 'pink' 5 | --- 6 | 7 | Get a birds eye view perspective and jump around big spaces with the minimap. There are two ways to use the minimap, while panning and from the sidebar. 8 | 9 | ## While Panning 10 | 11 | The minimap will display while panning mode is active – when either the space-key or the right-mouse button is held down. 12 | 13 | 16 | 17 | 18 | ## From the Footer 19 | 20 | Clicking the little minimap button in the footer will also display the minimap and a list of boxes sorted by their starting `y` positions. You can click and drag on the minimap to quickly move around, and click on a box to jump to its position. 21 | 22 |

23 | 24 |

25 | 26 | If you'd like, you can pin the sidebar to keep the minimap open while you work. 27 | 28 | You can also use the `M` key to quick toggle the sidebar minimap at any time. 29 | 30 | -------------------------------------------------------------------------------- /posts/mobile-tips.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Mobile Tips 3 | tags: ['About Kinopio'] 4 | color: 'mediumaquamarine' 5 | --- 6 | 7 | On a touch device, dragging your finger along the screen scrolls the page, and two-finger pinching zooms in and out, just like it does on a normal website. 8 | 9 | ## Tap and hold to paint select cards 10 | 11 | 14 | 15 | ## Tap and hold to drag cards 16 | 17 | 20 | 21 | ## Two finger tap to undo, three finger tap to redo 22 | -------------------------------------------------------------------------------- /posts/notifications.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notifications 3 | tags: ['Collaboration'] 4 | color: 'violet' 5 | --- 6 | 7 | By default, whenever a collaborator (or anyone in your open spaces) adds a card you will receive a notification about it. 8 | 9 | ![](https://updates.kinopio.club/notifications-dialog.png) 10 | 11 | ## When Notifications are Emailed 12 | 13 | When you view your notifications in Kinopio, those notifications will be marked as read. Every 10 minutes, the system collects all the notifications that haven't been read and sends you an email about them. 14 | 15 | 16 | 17 | 18 | ## Notification Settings 19 | 20 | If you don't want to be emailed notifications, you can unsubscribe with the link at the bottom of the email, or in your `User → Settings` 21 | 22 | ![](https://updates.kinopio.club/notifications-settings.png) -------------------------------------------------------------------------------- /posts/offline-support.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Offline Support 3 | tags: ['About Kinopio'] 4 | color: 'mediumaquamarine' 5 | --- 6 | 7 | Kinopio was designed to save even without a reliable connection. 8 | 9 | If you have Kinopio open and lose connectivity (e.g. going through a subway tunnel), you can continue editing your spaces as you normally would. Once you're online again, the changes you've made will be sent to the server. 10 | 11 | ![offline-dialog](/assets/posts/offline-dialog.png) 12 | 13 | Features that require active connectivity to a server, including collaboration, will not be available while you're offline. 14 | 15 | Full offline support, including the ability to open Kinopio while offline is on the longer term [Roadmap](https://kinopio.club/-kinopio-roadmap-6TRE21gchHI7alHLuwzd5) -------------------------------------------------------------------------------- /posts/posts.json: -------------------------------------------------------------------------------- 1 | { "layout": "layouts/post.pug" } -------------------------------------------------------------------------------- /posts/press-kit.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Press Kit 3 | tags: ['Press'] 4 | color: '#c4c4c4' 5 | --- 6 | 7 | [Download kinopio-assets.zip (17mb)](/assets/posts/press-kit/kinopio-assets.zip) 8 | 9 | 10 |

11 | 12 | 15 |

16 | 17 | 20 |

21 | 22 | 25 |

26 | 27 | 30 |

31 | 32 | 35 |

36 | 37 | 40 |

41 | 42 | ## Description 43 | 44 | [Kinopio](http://kinopio.club) is the spatial thinking tool for building new ideas and solving hard problems. 45 | 46 | By making it easy to get your thoughts out and form connections organically, Kinopio works the way your mind works. 47 | 48 | [Uses of Kinopio](/posts/uses-of-kinopio/) 49 | 50 | ## History 51 | 52 | Before Kinopio, I was the co-creator of Glitch.com, where I designed and built its original user interfaces. 53 | 54 | In 2019, I quit my job to create a different kind of productivity tool. Instead of being about tracking tasks or traditional project management, Kinopio is designed to help you organize complex thoughts, create new ideas, and make hard decisions. 55 | 56 | [Who Makes Kinopio?](/posts/who-makes-kinopio/) 57 | 58 | ## Features 59 | 60 | - No sign up required to use 61 | - A unique and intuitive interface that's easy to use 62 | - Works on both desktops and phones 63 | - [Explore] community created spaces and templates 64 | - Shareable public spaces 65 | - Invite collaborators to private spaces 66 | - keyboard shortcuts for power users 67 | 68 | ## See also 69 | 70 | - [Hello Kinopio blog post](http://pketh.org/hello-kinopio.html) 71 | - [Roadmap](https://kinopio.club/-kinopio-roadmap-6TRE21gchHI7alHLuwzd5) 72 | - [Design History](https://www.are.na/kinopio/kinopio-design) 73 | -------------------------------------------------------------------------------- /posts/privacy-options.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Privacy Options 3 | tags: ['Advanced Use'] 4 | color: '#b9a8ff' 5 | --- 6 | Who Can See What I Make? 7 | 8 | ## If you haven't made an account 9 | 10 | If you haven't signed up yet, then only you can see what you make regardless of privacy setting. 11 | 12 | ## If you are signed up 13 | 14 | If you have an account, then the space privacy setting dictates who can see what. You can change space privacy from `Spaces → Privacy icon`. Each setting in the privacy dialog explains who'll be able to see and edit your space. 15 | 16 | ![privacy-dialog](/assets/posts/privacy-dialog.png) 17 | 18 | p.s. New spaces default to `Private` -------------------------------------------------------------------------------- /posts/privacy-policy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Privacy Policy 3 | tags: ['Policies and Privacy'] 4 | color: 'salmon' 5 | --- 6 | 7 | > Friends don't spy on friends. 8 | 9 | - Kinopio won’t show you ads of any kind, or sell your data. 10 | - Children, and anyone else, will be able to use Kinopio anonymously. Without an account, none of your data will be transmitted to Kinopio servers. (👀 [How Your Data is Stored](/posts/how-your-data-is-stored/)) 11 | - To enable you to share spaces and collaborate, you will need to create an account. Your user data and spaces will then be hosted on AWS (via Heroku). 12 | - User uploads and server logs for debugging are stored in Linode Object Storage. Server logs do not contain personal information, and are deleted after 3 days. 13 | - To enable billing for paid plans, only the user information needed to process payments will be shared with Stripe. 14 | - No cookies are used at all. LocalStorage is used to save your info. Unlike cookies, other websites cannot access your Kinopio localStorage data. 15 | - The only analytics used are server-side [Netlify Analytics](https://www.netlify.com/products/analytics/). Netlify does not allow me to uniquely identify anyone. 16 | - Through the `Removed` dialog, you can permanently delete cards or spaces. When you do, all uploads associated with those cards are also deleted. 17 | - You can permanently delete all of your user data at anytime. 18 | 19 | --- 20 | 21 | [Track changes for this page](https://github.com/kinopio-club/kinopio-help/blob/master/posts/privacy-policy.md) 22 | 23 | All Policies 24 | - [Privacy Policy](/posts/privacy-policy/) 25 | - [Terms of Service](/posts/terms-of-service/) 26 | - [Use Restrictions Policy](/posts/use-restrictions-policy/) 27 | -------------------------------------------------------------------------------- /posts/refund-policy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Refund Policy 3 | tags: ['Policies and Privacy'] 4 | color: 'salmon' 5 | --- 6 | 7 | Kinopio is created by me, [Pirijan](/posts/who-makes-kinopio/), and I don't want your money unless you're happily using it. 8 | 9 | You can use the free version forever until you hit the [free limit](/posts/how-much-does-kinopio-cost/). And if you do subscribe and would like a refund for any reason, please [email me](mailto:hi@kinopio.club) within 30 days and I'll refund your last payment. 10 | -------------------------------------------------------------------------------- /posts/reset-your-password.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Reset Your Password 3 | tags: ['User Settings'] 4 | color: '#deb1ff' 5 | --- 6 | 7 | If you've lost your password, you can set a new password. 8 | 9 | 1. If you're currently signed in, sign out by clicking `You → Sign Out` 10 | 2. Click `Sign Up or In` 11 | 3. In the dialog that appears, click `Sign In` 12 | 4. Click `Forgot Password?` 13 | 5. Enter the email address associated with your account, then `Reset Password` 14 | 6. A password reset email will be sent to you. Follow the instructions in the email to set a new password. 15 | 7. Sign in with your new password -------------------------------------------------------------------------------- /posts/restoring-removed-cards-and-spaces.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Restoring Removed Cards and Spaces 3 | tags: ['Advanced Use'] 4 | color: '#b9a8ff' 5 | --- 6 | 7 | If you've accidentally removed/deleted a card or space, you can restore it back through `Removed`. In the `Cards` tab, you'll be able to restore or permanently remove cards that have been removed in the current space. 8 | 9 | ![removed-dialog](/assets/posts/removed-dialog.png) 10 | 11 | > A permanently removed card or space is immediately deleted from the database and cannot be restored, so be careful. -------------------------------------------------------------------------------- /posts/selecting-and-bulk-actions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Paint Selecting and Bulk Actions 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | date: 2020-04-01 6 | --- 7 | 8 | You can move or edit multiple cards and connections at once by painting over them. 9 | 10 | 13 | 14 | ## Painting over connections lets you make them all the same type quickly 15 | 16 | 20 | 21 | ## Painting over cards also lets you move those cards to another space 22 | 23 | ![move-cards](/assets/posts/move-cards.png) 24 | -------------------------------------------------------------------------------- /posts/sharing-spaces.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sharing Spaces 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | --- 6 | 7 | Share your spaces with the world by copying the URL provided in the `Share` dialog. 8 | 9 | 10 | 13 |

14 | 15 | > If your space privacy is set to `Private`, a share URL is not shown because only you and your collaborators will be able to access it. -------------------------------------------------------------------------------- /posts/styling-cards.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Styling Cards with Colors, Formatting, Frames and more 3 | tags: ['How to Use'] 4 | color: 'khaki' 5 | --- 6 | 7 | 8 | Card → `Style` lets you add heading formatting, tags, colors, and more. It's a powerful way to make cards more expressive and functional. 9 | 10 | ![](/assets/posts/card-styles.png) 11 | 12 | You can also paint multiple cards to `Style` them together, 13 | 14 | 17 | 18 | Happy styling ヾ(^∇^) 19 | -------------------------------------------------------------------------------- /posts/tags.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Tags 3 | tags: ['Advanced Use'] 4 | color: '#b9a8ff' 5 | --- 6 | 7 | Add `[[tags]]` to your cards to make them stand out and connect ideas across spaces. 8 | 9 | To add a tag into a card you can either type `[[` and start typing your tag, then `tab` or `enter` to complete it. You can also add tags to a card or a paint selection through the [Style](/posts/styling-cards/) menu. 10 | 11 | 14 | 15 | 18 | 19 | ## Backlinking 20 | 21 | Click on a card tag to change it's color or to jump to other cards with that tag in other spaces. 22 | 23 | ![](/assets/posts/tag-details.png) 24 | 25 | Use the sidebar to get an see all your tags and jump to matching cards. 26 | 27 | ![](/assets/posts/tag-sidebar.png) 28 | 29 | 30 | ## Some Ways to Use Tags 31 | 32 | - Group cards by `[[project]]`, or `[[team]]`, or `[[assignee]]` 33 | - Connect `[[related]]` cards across spaces 34 | - `[[Label]]` important cards that you want to stand out in your space 35 | -------------------------------------------------------------------------------- /posts/templates.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using Templates and Creating Your Own 3 | tags: ['Community'] 4 | color: 'burlywood' 5 | --- 6 | Get started with templates by clicking the template button in the top left. 7 | 8 | ![templates](https://updates.kinopio.club/templates-dialog.png) 9 | 10 | # Creating and Using Personal Templates 11 | 12 | Make your own spaces into easy to duplicate personal templates. Such as, 13 | 14 | - Class notes with different templates per course 15 | - Organizing research and writing 16 | - Meeting prep 17 | 18 | I'm sure you'll surprise me with more ~ 19 | 20 | 23 | -------------------------------------------------------------------------------- /posts/terms-of-service.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Terms of Service 3 | tags: ['Policies and Privacy'] 4 | color: 'salmon' 5 | --- 6 | 7 | > I endeavor to treat everyone fairly, ethically, and honestly. But for the possible but unlikely bad actor, this boring legal document exists. 8 | 9 | - When I say “Company”, “we”, “our”, or “us” in this document, I'm referring to Kinopio LLC. 10 | - When we say “Services”, we mean any product created and maintained by Kinopio LLC. 11 | 12 | When you use our Services, now or in the future, you are agreeing to the latest Terms of Service. That’s true for any of our existing and future products and all features that we add to our Services over time. There may be times where we do not exercise or enforce any right or provision of the Terms of Service; in doing so, we are not waiving that right or provision. These terms do contain a limitation of our liability. 13 | 14 | If you violate of any of the terms, we may terminate your account. That’s a broad statement and it means you need to place a lot of trust in us. We do our best to deserve that trust by being open about who we are, how we work, and keeping an open door to your feedback. 15 | 16 | ## Contents 17 | 18 | - [Account Terms](#accountTerms) 19 | - [Payments](#payments) 20 | - [Refunds](#refunds) 21 | - [Payment Cancellation](#paymentCancellation) 22 | - [Account Deletion](#accountDeletion) 23 | - [Uptime, Security, and Privacy](#uptimeSecurityAndPrivacy) 24 | - [Copyright and Content Ownership](#copyrightAndContentOwnership) 25 | - [Features and Bugs](#FeaturesAndBugs) 26 | - [Services Adaptations and API Terms](#servicesAdaptationsAndAPITerms) 27 | - [Liability](#liability) 28 | 29 | 30 | ## Account Terms 31 | 32 | 1. You are responsible for maintaining the security of your account and password. The Company cannot and will not be liable for any loss or damage from your failure to comply with this security obligation. 33 | 2. You may not use the Services for any purpose outlined in our [Use Restrictions policy](/posts/use-restrictions-policy/). 34 | 3. You are responsible for all content posted and activity that occurs under your account. That includes content posted by others who either: (a) have access to your login credentials; or (b) have their own logins under your account. 35 | 4. You must be a human. Accounts registered by “bots” or other automated methods are not permitted. 36 | 37 | 38 | ## Payments 39 | 40 | 1. We'll only ask for your credit when you want to, or need to, pay to upgrade your account. We will charge your card immediately and your billing cycle starts on the day of upgrade. 41 | 2. All fees are exclusive of all taxes, levies, or duties imposed by taxing authorities. Where required, we will collect those taxes on behalf of the taxing authority and remit those taxes to taxing authorities. 42 | 43 | 44 | ## Refunds 45 | 46 | 1. If you were just charged for your next month of service but you meant to cancel, we’re happy to refund that extra charge. 47 | 2. If you forgot to cancel your account a couple months ago and you haven’t used it since then, we’ll give you a full refund for a few back months. No problem. 48 | 3. If you tried one of our products for a couple months and you just weren’t happy with it, you can have your money back. 49 | 50 | 51 | ## Payment Cancellation 52 | 53 | 1. You are solely responsible for properly canceling your paid plan. Our service provides a simple no-questions-asked cancel account button. An email request to cancel your account is not automatically considered cancellation. If you need help cancelling your account, email [hi@kinopio.club](mailto:hi@kinopio.club). 54 | 2. All of your content will still be accessible from the Services immediately upon cancellation. However, you won't be able to add new data unless your account is below the unpaid plan limits. 55 | 3. If you cancel the Service before the end of your current paid up month, your cancellation will take effect immediately, and you will not be charged again. We do not automatically prorate unused time in the last billing cycle. See the `Refunds` section above for more details. 56 | 57 | 58 | ## Account Deletion 59 | 60 | 1. You are solely responsible for properly deleting your account. Our service provides a simple no-questions-asked `Remove All Your Data` button. An email request to cancel your account is not automatically considered deletion. If you need help deleting your account, email [hi@kinopio.club](mailto:hi@kinopio.club). 61 | 2. Upon deletion, your data is immediately and permanently deleted from the main database. Within 30 days, all content will be permanently deleted from and logs. Within 60 days, all content will be permanently deleted from our backups. We cannot recover this information once it has been permanently deleted. 62 | 3. We have the right to suspend or terminate your account and refuse any and all current or future use of our Services for any reason at any time. Suspension means you and any other users on your account will not be able to access the account or any content in the account. Termination will furthermore result in the deletion of your account or your access to your account, and the forfeiture and relinquishment of all content in your account. We also reserve the right to refuse the use of the Services to anyone for any reason at any time. We have this clause because statistically speaking, out of the hundreds of thousands of accounts on our Services, there is at least one doing something nefarious. There are some things we staunchly stand against and this clause is how we exercise that stance. For more details, see our [Use Restrictions policy](/posts/use-restrictions-policy/). 63 | 4. Verbal, physical, written or other abuse (including threats of abuse or retribution) of Company employee or officer will result in immediate account termination. 64 | 65 | 66 | ## Uptime, Security, and Privacy 67 | 68 | 1. Your use of the Services is at your sole risk. We provide these Services on an “as is” and “as available” basis. We do not offer service-level agreements for most of our Services – but do take uptime of our applications seriously. 69 | 2. We reserve the right to temporarily disable your account if your usage significantly exceeds the average usage of other customers of the Services. Of course, we’ll reach out to the account owner before taking any action except in rare cases where the level of use may negatively impact the performance of the Service for other customers. 70 | 3. We take many measures to protect and secure your data through backups, redundancies, and encryption. We enforce encryption for data transmission from the public Internet. 71 | 4. When you use our Services, you entrust us with your data. We take that trust to heart. You agree that Kinopio may process your data as described in our Privacy Policy and for no other purpose. We can access your data for the following reasons: 72 | - To help you with support requests you make. We’ll ask for express consent before accessing your account. 73 | - To find public spaces that would be interesting to others to show in Explore. Owners of those spaces will be sent an email asking them if they would be interested in adding their space to Explore. Private spaces are never accessed without explicit owner consent. 74 | - To safeguard Kinopio. We’ll look at logs and metadata as part of our work to ensure the security of your data and the Services as a whole. If necessary, we may also access accounts as part of an abuse report investigation. 75 | 5. We use third party vendors and hosting partners to provide the necessary hardware, software, networking, storage, and related technology required to run the Services. The subprocessors are: 76 | 77 | - [Heroku](https://devcenter.heroku.com/articles/security-privacy-compliance) Cloud hosting and database. 78 | - [Amazon Web Services](https://aws.amazon.com/compliance/gdpr-center) Service provider used by Heroku. 79 | - [PostMark](https://postmarkapp.com/eu-privacy) Email sending. 80 | - [Stripe](https://stripe.com/privacy) Payment processing. 81 | - [Linode](https://www.linode.com/legal-privacy) Object Storage for user uploads and server log storage. 82 | 83 | 84 | ## Copyright and Content Ownership 85 | 86 | 1. All content posted on the Services must comply with U.S. copyright law. 87 | 2. We claim no intellectual property rights over the material you provide to the Services. All materials uploaded remain yours. 88 | 3. We do not pre-screen content, but reserve the right (but not the obligation) in our sole discretion to refuse or remove any content that is available via the Service. 89 | 4. The names, look, and feel of the Services are copyright© to the Company. All rights reserved. You may not duplicate, copy, or reuse any portion of the HTML, CSS, JavaScript, or visual design elements without express written permission from the Company. 90 | 5. You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the Services, use of the Services, or access to the Services without the express written permission by the Company. 91 | 6. You must not modify another website so as to falsely imply that it is associated with the Services or the Company. 92 | 93 | 94 | ## Features and Bugs 95 | 96 | We design our Services with care, based on our own experience and the experiences of customers who share their time and feedback. However, there is no such thing as a service that pleases everybody. We make no guarantees that our Services will meet your specific requirements or expectations. 97 | 98 | We also test all of our features extensively before shipping them. As with any software, our Services inevitably have some bugs. We track the bugs reported to us and work through priority ones, especially any related to security or privacy. Not all reported bugs will get fixed and we don’t guarantee completely error-free Services. 99 | 100 | 101 | ## Services Adaptations and API Terms 102 | 103 | We offer Application Program Interfaces (“API”s) for our Service. Any use of the API, including through a third-party product that accesses the Services, is bound by the terms of this agreement plus the following specific terms: 104 | 105 | 1. You expressly understand and agree that we are not liable for any damages or losses resulting from your use of the API or third-party products that access data via the API. 106 | 2. Abuse or excessively frequent requests to the Services via the API may result in the temporary or permanent suspension of your account’s access to the API. The Company, in its sole discretion, will determine abuse or excessive usage of the API. If we need to suspend your account’s access, we will attempt to warn the account owner first. If your API usage could or has caused downtime, we may cut off access without prior notice. 107 | 108 | 109 | ## Liability 110 | 111 | We mention liability throughout these Terms but to put it all in one section: 112 | 113 | ***You expressly understand and agree that the Company shall not be liable, in law or in equity, to you or to any third party for any direct, indirect, incidental, lost profits, special, consequential, punitive or exemplary damages, including, but not limited to, damages for loss of profits, goodwill, use, data or other intangible losses (even if the Company has been advised of the possibility of such damages), resulting from: (i) the use or the inability to use the Services; (ii) the cost of procurement of substitute goods and services resulting from any goods, data, information or services purchased or obtained or messages received or transactions entered into through or from the Services; (iii) unauthorized access to or alteration of your transmissions or data; (iv) statements or conduct of any third party on the service; (v) or any other matter relating to this Terms of Service or the Services, whether as a breach of contract, tort (including negligence whether active or passive), or any other theory of liability.*** 114 | 115 | In other words: choosing to use our Services does mean you are making a bet on us. If the bet does not work out, that’s on you, not us. We do our darnedest to be as safe a bet as possible through careful management of the business; investments in security, infrastructure, and talent; and in general giving a damn. If you choose to use our Services, thank you for betting on us. If you have a question about any of the Terms of Service, please email [hi@kinopio.club](mailto:hi@kinopio.club) 116 | 117 | --- 118 | 119 | This document was originally adapted from [Basecamp's](https://basecamp.com/about/policies/terms) Terms of Service. 120 | 121 | [Track changes for this page](https://github.com/kinopio-club/kinopio-help/blob/master/posts/terms-of-service.md) 122 | 123 | All Policies 124 | - [Privacy Policy](/posts/privacy-policy/) 125 | - [Terms of Service](/posts/terms-of-service/) 126 | - [Use Restrictions Policy](/posts/use-restrictions-policy/) 127 | -------------------------------------------------------------------------------- /posts/use-restrictions-policy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Use Restrictions Policy 3 | tags: ['Policies and Privacy'] 4 | color: 'salmon' 5 | --- 6 | 7 | Kinopio helps people understand themselves and be understood by sharing thoughts and ideas. But an expressive tool is also one that can be used maliciously. 8 | 9 | > This document defines the shady stuff you cannot use Kinopio for. 10 | 11 | - When I say “Company”, “we”, “our”, or “us” in this document, I'm referring to Kinopio LLC. 12 | 13 | ## Restricted purposes 14 | 15 | - **Child exploitation, sexualization, or abuse**: We don’t tolerate any activities that create, disseminate, or otherwise cause child abuse. Keep away and stop. Just stop. 16 | - **Doxing**: If you are using Kinopio products to share other peoples’ private personal information for the purposes of harassment, we don’t want anything to do with you. 17 | - **Infringing on intellectual property**: You can’t use Kinopio to make or disseminate work that uses the intellectual property of others beyond the bounds of fair use. 18 | - **Malware or spyware**: Code for good, not evil. If you are using our products to make or distribute anything that qualifies as malware or spyware, begone. 19 | - **Phishing or otherwise attempting fraud**: It is not okay to lie about who you are or who you affiliate with to steal from, extort, or otherwise harm others. 20 | - **Spamming**: No one wants unsolicited commercial emails. We don’t tolerate folks (including their bots) using Kinopio for spamming purposes. 21 | - **Violence, or threats thereof**: If an activity qualifies as violent crime in the United States or where you live, you may not use Kinopio to plan, perpetrate, or threaten that activity. 22 | 23 | We’ve outlined these restrictions to be clear about what we won’t stand for. That said, this list is by no means exhaustive. We will make changes over time. 24 | 25 | ## How to report abuse 26 | 27 | See someone using Kinopio for one of the restricted purposes? Let us know by emailing [hi@kinopio.club](mailto:hi@kinopio.club) and we will investigate. If you’re not 100% sure, report it anyway. 28 | 29 | Please share as much as you are comfortable with about the account, the content or behavior you are reporting, and how you found it. Sending us a URL or screenshots is super helpful. We will not disclose your identity to anyone associated with the reported account. 30 | 31 | Kinopio will respond within two business days to let you know we’ve begun investigating. We will also let you know the outcome of our investigation (unless you ask us not to or we are not allowed to under law). 32 | 33 | Depending on the violation, the following may happen: 34 | 35 | - The space will be removed 36 | - The violating user's account will be removed 37 | - The offender may be contacted 38 | - Law enforcement may be contacted 39 | 40 | --- 41 | 42 | (This document was originally adapted from [Basecamp's](https://basecamp.com/about/policies/abuse) Use Restrictions Policy.) 43 | 44 | [Track changes for this page](https://github.com/kinopio-club/kinopio-help/blob/master/posts/use-restrictions-policy.md) 45 | 46 | All Policies 47 | - [Privacy Policy](/posts/privacy-policy/) 48 | - [Terms of Service](/posts/terms-of-service/) 49 | - [Use Restrictions Policy](/posts/use-restrictions-policy/) 50 | -------------------------------------------------------------------------------- /posts/using-explore.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Discover Community Spaces with Explore and Live 3 | tags: ['Community'] 4 | color: 'burlywood' 5 | --- 6 | 7 | ## Explore 8 | 9 | Explore is a list of cool spaces made and explicitly shared by other people (like you) with the Kinopio community. 10 | 11 | To add or remove your own cool space to Explore, toggle `Spaces → Add to Explore`. 12 | 13 | ![show-in-explore](/assets/posts/add-to-explore.png) 14 | 15 | 16 | ## Live 17 | 18 | Live Spaces shows public spaces that are currently being edited. It's a fun way to discover new spaces and community creators. 19 | 20 | 21 | 22 | Space appear in Live when both: 23 | 24 | - the space privacy is either public or open 25 | - a member of the space (if public), or any signed in user (if open), paints or edits cards in the space 26 | 27 | Spaces get removed from Live when either: 28 | 29 | - the live user moves to another space 30 | - the privacy of the space is changed to private 31 | - the last received editing event for the space is over an hour old 32 | -------------------------------------------------------------------------------- /posts/who-makes-kinopio.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Who Makes Kinopio? 3 | tags: ['About Kinopio'] 4 | color: 'mediumaquamarine' 5 | --- 6 | 7 | (*・_・)⊃══✫⌒*・゚✲ 8 | 9 | Hi, my name is Pirijan and I created Kinopio to help people and teams create new ideas and understand why they think the way they do. 10 | 11 | Before Kinopio, I was the co-creator of Glitch.com, where I designed and built its original user interfaces. I believe in software that's designed by artists, and built by craftspeople. 12 | 13 | You can read my blog, where I write more about building Kinopio, at [pketh.org](http://pketh.org), or follow me on Twitter [@pketh](http://twitter.com/pketh) 14 | 15 | I hope you enjoy using Kinopio and find it useful, 16 | 17 | xoxo 18 | -------------------------------------------------------------------------------- /styles/about.styl: -------------------------------------------------------------------------------- 1 | // About 2 | 3 | .about 4 | h1 5 | font-size 36px 6 | margin-top 1rem 7 | h2 8 | font-size 26px 9 | font-weight bold 10 | img, 11 | video 12 | width 100% 13 | max-width 560px 14 | margin-bottom 0 15 | position relative 16 | .intro-video 17 | background-color #38693e 18 | max-width 560px 19 | max-height 290px 20 | .uses 21 | span 22 | vertical-align middle 23 | margin-right 6px 24 | .badge 25 | display inline-block 26 | vertical-align middle 27 | margin-right 6px 28 | cursor pointer 29 | .triangle 30 | width 0 31 | height 0 32 | border-width 0 10px 11px 10px // matches triangleWidth in examples.js 33 | border-color transparent transparent var(--code-background) transparent 34 | border-style solid 35 | position absolute 36 | left 72px 37 | top -11px 38 | .example 39 | width 100% 40 | background var(--code-background) 41 | border-radius 10px 42 | padding 1rem 43 | display inline-block 44 | margin-top 1rem 45 | position relative 46 | figure 47 | display inline-flex 48 | margin 0 49 | align-items flex-start 50 | video, 51 | img 52 | width 60% 53 | margin 0 54 | max-width 461px 55 | max-height 280px 56 | background var(--page-background) 57 | img.arena 58 | width 20px 59 | vertical-align 0 60 | margin 0 61 | margin-right 5px 62 | background transparent 63 | img.sunglasses 64 | width 25px 65 | vertical-align -2px 66 | margin 0 67 | margin-right 5px 68 | background transparent 69 | figcaption 70 | max-width calc(40% - 1rem) 71 | margin-left 1rem 72 | p:first-child 73 | margin-top 0 74 | @media(max-width 500px) 75 | figure 76 | display block 77 | video, 78 | img 79 | width 100% 80 | margin-bottom 1rem 81 | figcaption 82 | max-width initial 83 | margin-left 0 84 | 85 | 86 | section.uses, 87 | section.features, 88 | section.about-me 89 | margin-top 4rem 90 | 91 | .grid-container 92 | display grid 93 | grid-auto-rows 1fr 94 | grid-template-columns 1fr 1fr 95 | grid-template-rows 1fr 1fr 96 | gap 1em 1em 97 | grid-template-areas: 98 | ". ." 99 | ". ." 100 | video 101 | background var(--code-background) 102 | max-width 392px 103 | max-height 275px 104 | p 105 | margin-top 0 106 | @media(max-width 392px) 107 | display block 108 | video 109 | margin-bottom 2rem 110 | 111 | .mobile-video 112 | max-width 300px 113 | max-height 519px 114 | 115 | .cta-bottom 116 | margin-top 2rem 117 | 118 | .cta 119 | a + a 120 | margin-left 6px 121 | 122 | .producthunt-badge 123 | margin-top 2rem 124 | width 250px 125 | height 54px 126 | 127 | section.about-me 128 | .badge 129 | background-color var(--tertiary) 130 | display inline-flex 131 | margin-bottom 6px 132 | margin-right 6px 133 | img.sunglasses 134 | width 25px 135 | vertical-align -2px 136 | margin 0 137 | margin-right 5px 138 | .spaces 139 | .user 140 | margin-right 4px 141 | background-image url("/assets/anon-avatar.svg") 142 | background-repeat no-repeat 143 | width 18px 144 | height 18px 145 | background-color #91ffff 146 | border-radius 5px 147 | background-position center 148 | background-size 65% 149 | vertical-align middle 150 | .signature 151 | width 85px 152 | vertical-align middle 153 | margin-left 5px -------------------------------------------------------------------------------- /styles/guides.styl: -------------------------------------------------------------------------------- 1 | .guides 2 | p.intro 3 | margin-bottom 0 4 | 5 | h1 6 | font-family Aureum, serif 7 | display inline-block 8 | position relative 9 | margin-bottom 0 10 | 11 | ul 12 | margin-top 0 13 | li 14 | margin 0 15 | width max-content 16 | &:first-child 17 | margin-top 0 18 | &:hover 19 | h1 20 | text-decoration underline 21 | img 22 | transform rotate(3deg) 23 | a 24 | position relative 25 | color var(--primary) 26 | background none 27 | padding initial 28 | border-radius 0 29 | box-shadow none 30 | &:hover 31 | box-shadow none 32 | img 33 | max-width 100px 34 | border-radius 5px 35 | position absolute 36 | right -112px 37 | top -36px 38 | transition all 0.1s 39 | p 40 | margin-bottom 0 41 | .user 42 | margin-right 6px 43 | 44 | h2.badge 45 | font-weight normal 46 | margin 0 47 | margin-top 2em 48 | 49 | .badge 50 | &.life 51 | background-color #b9a8ff 52 | &.work-school 53 | background-color #ffbfcb 54 | 55 | .user 56 | margin-right 4px 57 | background-image url("/assets/anon-avatar.svg") 58 | background-repeat no-repeat 59 | width 18px 60 | height 18px 61 | background-color #91ffff 62 | border-radius 5px 63 | background-position center 64 | background-size 65% 65 | vertical-align 2px 66 | display inline-block 67 | 68 | .kinopio-embed 69 | height 420px 70 | width 100% 71 | margin-top 2em 72 | margin-bottom 4em 73 | border-radius 5px 74 | .embed-title 75 | border-radius 5px 76 | border-bottom-left-radius 0 77 | border-bottom-right-radius 0 78 | background var(--code-background) 79 | padding 8px 10px 80 | .badge 81 | display inline 82 | box-shadow none 83 | margin-left 5px 84 | iframe 85 | display block 86 | border-radius 5px 87 | border-top-left-radius 0 88 | border-top-right-radius 0 89 | height 100% 90 | width 100% 91 | border 0 92 | background white 93 | 94 | article 95 | h1 96 | font-size 48px 97 | display block 98 | margin-top 0 99 | margin-bottom 1em 100 | aside.info 101 | border-radius 5px 102 | width 200px 103 | margin-bottom 3em 104 | background-color var(--secondary-background) 105 | border 1px solid var(--primary) 106 | section 107 | padding 8px 108 | &.title 109 | border-bottom 1px solid var(--primary) 110 | p 111 | margin 0 112 | p + p 113 | margin-top 8px 114 | .user 115 | vertical-align -3px 116 | .category 117 | display block 118 | margin-top 3em 119 | margin-bottom 1em 120 | .badge 121 | display inline-block 122 | // margin-bottom 4em 123 | box-shadow none 124 | 125 | .icon.updated 126 | width: 55px; 127 | margin-right: 5px; 128 | margin-bottom: 0; 129 | vertical-align: -1px; -------------------------------------------------------------------------------- /styles/overview.styl: -------------------------------------------------------------------------------- 1 | section.overview 2 | .articles 3 | display flex 4 | flex-wrap wrap 5 | article 6 | width calc(50% - 1rem) 7 | max-width 300px 8 | background-color var(--secondary-active-background) 9 | border-radius 10px 10 | margin-bottom 1rem 11 | margin-right 1rem 12 | video 13 | background-color var(--primary-background) 14 | border-top-left-radius 0 15 | border-top-right-radius 0 16 | margin-bottom 0 17 | p 18 | margin-left 1rem 19 | // margin-top 0 20 | .badge 21 | box-shadow none 22 | border-radius 100px 23 | padding-left 8px 24 | padding-right 8px 25 | &:hover 26 | box-shadow none 27 | 28 | section.index 29 | margin-top -1rem -------------------------------------------------------------------------------- /styles/styles.styl: -------------------------------------------------------------------------------- 1 | :root 2 | --primary black 3 | --primary-background white 4 | 5 | // --secondary #666 6 | --secondary-background #e3e3e3 7 | --secondary-hover-background #d8d8d8 8 | --secondary-active-background #cdcdcd 9 | 10 | --light-shadow rgba(0,0,0,0.20) 11 | --heavy-shadow rgba(0,0,0,0.25) 12 | 13 | // --danger-background #ffb8b3 14 | // --danger-hover-background #ffa49e 15 | // --danger-active-background #ff928b 16 | 17 | --info-background #90ffff 18 | --success-background #98f49f 19 | 20 | // non-theme vars 21 | // --max-z 2147483647 22 | --hover-shadow 3px 3px 0 var(--heavy-shadow) 23 | // --active-shadow 5px 5px 0 var(--light-shadow) 24 | // --active-inset-shadow inset 0 2px 3px var(--light-shadow) 25 | // --button-hover-shadow inset 0 1px 2px var(--heavy-shadow) 26 | --button-active-inset-shadow inset 0px 1px 2px var(--heavy-shadow) 27 | 28 | --badge-shadow 2px 2px 0 var(--light-shadow) 29 | --button-to-kinopio-hover-shadow 5px 5px 0 var(--heavy-shadow) 30 | 31 | // help site vars 32 | --max-page-width 520px 33 | --page-margin 20px 34 | --page-background #dbdbdb // #e8eadf 35 | --code-background #c8c8c8 36 | --table-border #c5c5c5 37 | --table-hover-background rgba(0,0,0,0.05) 38 | --cta-background #67ffbb 39 | --sans-serif Helvetica Neue, Helvetica, Arial, sans-serif 40 | --tertiary #c4c4c4 41 | 42 | // Elements 43 | 44 | @font-face 45 | font-family 'OsakaMono-Kinopio' 46 | src url("/assets/fonts/OsakaMono-Kinopio.woff2") format("woff2") 47 | font-weight normal 48 | font-style normal 49 | 50 | @font-face 51 | font-family 'Recoleta' 52 | src url("/assets/fonts/Recoleta-Regular.woff2") format("woff2") 53 | font-weight normal 54 | font-style normal 55 | 56 | @font-face 57 | font-family 'Recoleta' 58 | src url("/assets/fonts/Recoleta-Bold.woff2") format("woff2") 59 | font-weight bold 60 | font-style normal 61 | 62 | @font-face 63 | font-family 'Aureum' 64 | src url("/assets/fonts/Greenhouse-Aureum.woff2") format("woff2") 65 | font-weight normal 66 | font-style normal 67 | 68 | * 69 | -webkit-overflow-scrolling touch 70 | -webkit-tap-highlight-color transparent 71 | box-sizing border-box 72 | // font-family "OsakaMono-Kinopio", monospace 73 | 74 | body 75 | color var(--primary) 76 | font-family var(--sans-serif) 77 | margin var(--page-margin) 78 | background-color var(--page-background) 79 | 80 | .content-wrap 81 | margin-left auto 82 | margin-right auto 83 | max-width 800px 84 | width 100% 85 | position relative 86 | // background-image url("https://kinopio.club/img/background.597f845c.svg") 87 | // background-position top 88 | padding 0 89 | 90 | .logo 91 | background-image url('/assets/logo-base.png') 92 | background-size contain 93 | background-repeat no-repeat 94 | width 50px 95 | height 42px 96 | vertical-align -13px 97 | margin-right 12px 98 | display inline-block 99 | 100 | .hidden 101 | display none !important 102 | 103 | h1 104 | // font-family Mars 105 | font-family Recoleta 106 | font-size 30px 107 | font-weight normal 108 | // margin-bottom 1rem 109 | // font-family Agrandir 110 | h2, 111 | h3 112 | margin-top 2rem 113 | font-family Recoleta 114 | // font-family Mars 115 | font-size 22px 116 | font-weight normal 117 | // font-family Agrandir 118 | 119 | h1, 120 | h2, 121 | a, 122 | p 123 | max-width var(--max-page-width) 124 | 125 | p 126 | line-height 1.2 127 | 128 | a 129 | color blue 130 | &:hover 131 | text-decoration none 132 | 133 | .icon 134 | width 13px 135 | display inline 136 | vertical-align 1px 137 | margin-right 5px 138 | user-drag none 139 | -webkit-user-drag none 140 | 141 | // .down-arrow 142 | // width 10px 143 | // margin 0 144 | // margin-left 5px 145 | // vertical-align middle 146 | 147 | .icon.templates 148 | margin-bottom 0 149 | width 20px 150 | margin-right 0 151 | 152 | .heart 153 | margin-left 5px 154 | 155 | form 156 | margin 0 157 | display flex 158 | 159 | input 160 | font-size 16px 161 | font-family var(--sans-serif) 162 | background-color transparent 163 | border none 164 | border-radius 0 165 | border-bottom 1px solid black 166 | 167 | img 168 | width 100% 169 | max-width var(--max-page-width) 170 | 171 | ul 172 | padding 0 173 | li 174 | list-style none 175 | margin-bottom 12px 176 | a 177 | color var(--primary) 178 | text-decoration none 179 | background var(--info-background) 180 | padding 4px 5px 181 | border-radius 5px 182 | box-shadow var(--badge-shadow) 183 | &:hover, 184 | &:focus 185 | box-shadow var(--hover-shadow) 186 | &:active 187 | box-shadow var(--button-active-inset-shadow) 188 | 189 | .badge 190 | color var(--primary) 191 | text-decoration none 192 | background var(--info-background) 193 | padding 4px 5px 194 | border-radius 5px 195 | box-shadow var(--badge-shadow) 196 | &:hover, 197 | &:focus 198 | box-shadow var(--hover-shadow) 199 | &:active, 200 | &.active 201 | box-shadow var(--button-active-inset-shadow) 202 | 203 | button 204 | color var(--primary) 205 | touch-action manipulation 206 | text-align left 207 | padding 7px 208 | padding-top 4px 209 | padding-bottom 4px 210 | margin 0 211 | border 1px solid var(--primary) 212 | background-color transparent 213 | border-radius 5px 214 | cursor pointer 215 | user-select none 216 | font-size 14px 217 | font-family var(--sans-serif) 218 | &:hover, 219 | &:focus 220 | box-shadow var(--hover-shadow) 221 | background var(--secondary-hover-background) 222 | &:active, 223 | &.active 224 | color var(--primary) 225 | box-shadow var(--button-active-inset-shadow) 226 | background var(--secondary-active-background) 227 | 228 | .button-to-kinopio 229 | background-color var(--cta-background) 230 | box-shadow var(--hover-shadow) 231 | &:hover, 232 | &:focus 233 | background-color var(--cta-background) 234 | box-shadow var(--button-to-kinopio-hover-shadow) 235 | &:active 236 | background-color var(--cta-background) 237 | box-shadow var(--button-active-inset-shadow) 238 | 239 | .segmented-buttons 240 | button 241 | margin 0 242 | border-radius 0 243 | a 244 | button 245 | margin-left -1px 246 | &:first-child 247 | button 248 | border-top-left-radius 5px 249 | border-bottom-left-radius 5px 250 | margin-left 0 251 | &:last-child 252 | button 253 | border-top-right-radius 5px 254 | border-bottom-right-radius 5px 255 | 256 | code, 257 | blockquote 258 | background var(--code-background) 259 | 260 | code 261 | color var(--primary) 262 | padding 2px 263 | padding-left 6px 264 | padding-right 6px 265 | border-radius 5px 266 | font-family "OsakaMono-Kinopio", monospace 267 | 268 | blockquote 269 | margin 0 270 | border-radius 5px 271 | padding 8px 272 | display inline-block 273 | p 274 | margin 0 275 | 276 | canvas#background 277 | position fixed 278 | background-color transparent 279 | top 0 280 | left 0 281 | z-index -1 282 | canvas#page-background, 283 | canvas.auto-paint 284 | position absolute 285 | background-color transparent 286 | top 0 287 | left 0 288 | z-index -2 289 | canvas.auto-paint 290 | z-index -3 291 | 292 | .table-wrap 293 | overflow-x auto 294 | border-radius 5px 295 | width fit-content 296 | padding 0 !important 297 | .badge + .table-wrap 298 | margin-top 1rem 299 | 300 | table 301 | border-collapse collapse 302 | max-width 1000px 303 | th 304 | background-color var(--table-border) 305 | th, 306 | td 307 | padding 12px 308 | text-align left 309 | border-bottom 1px solid var(--table-border) 310 | tr 311 | &:hover 312 | background var(--table-hover-background) 313 | &:last-child 314 | td 315 | border-bottom 0 316 | 317 | 318 | // Components 319 | 320 | header 321 | .title 322 | display flex 323 | h1 324 | font-family Recoleta 325 | font-size 24px 326 | font-weight bold 327 | margin-top 0 328 | padding-top 10px 329 | a 330 | color var(--primary) 331 | text-decoration none 332 | &:hover, 333 | &:focus 334 | text-decoration underline 335 | .logo 336 | background-image url('/assets/logo-hover.png') 337 | &:active 338 | .logo 339 | background-image url('/assets/logo-active.png') 340 | 341 | .search 342 | display flex 343 | margin-bottom 2rem 344 | img 345 | width 18px 346 | padding-right 4px 347 | cursor pointer 348 | margin-top 1px 349 | 350 | main 351 | button 352 | font-size 16px 353 | 354 | footer 355 | margin-top 4rem 356 | margin-bottom 4rem 357 | .sections 358 | display flex 359 | section + section 360 | margin-left 2rem 361 | h3 362 | font-size 20px 363 | margin-top 1rem 364 | nav 365 | margin-top 1rem 366 | position static 367 | p 368 | margin-bottom 0 369 | li 370 | a 371 | background-color var(--tertiary) 372 | @media(max-width 420px) 373 | .extended-text 374 | display none 375 | 376 | nav 377 | display flex 378 | position absolute 379 | right 0 380 | top 0 381 | button 382 | margin-left 6px 383 | 384 | .content-wrap 385 | nav 386 | @media(max-width 375px) 387 | max-width 220px 388 | flex-wrap wrap 389 | justify-content flex-end 390 | .button-to-kinopio 391 | margin-top 10px 392 | 393 | article 394 | ul, 395 | ol 396 | max-width var(--max-page-width) 397 | padding-left 1rem 398 | margin-left 1rem 399 | li 400 | margin-bottom 12px 401 | 402 | ul 403 | li 404 | list-style-type disc 405 | 406 | img, 407 | video 408 | width 420px 409 | max-width 100% 410 | border-radius 10px 411 | margin-bottom 1rem 412 | &.wide 413 | width 700px 414 | &.narrow 415 | width 250px 416 | &.no-shadow 417 | box-shadow none 418 | 419 | img + h2, 420 | video + h2 421 | margin-top 1.5rem 422 | 423 | ul.api-contents 424 | margin-top 1rem 425 | padding 0 426 | margin-left 0 427 | margin-right 0 428 | position sticky 429 | top 20px 430 | z-index 10 431 | li 432 | list-style none 433 | display inline-block 434 | margin-right 6px 435 | 436 | .api, 437 | .guides 438 | h2 439 | font-family Recoleta 440 | font-size 26px 441 | font-weight normal 442 | h2, 443 | h3 444 | &.badge 445 | display inline-block 446 | padding 4px 5px 447 | border-radius 5px 448 | font-family sans-serif 449 | font-size 16px 450 | font-weight bold 451 | margin-bottom 0 452 | box-shadow none 453 | .badge.all 454 | margin-top 0 455 | 456 | code 457 | line-height 1.2 458 | 459 | // colors should match api.pug 460 | .all, 461 | .users, 462 | .spaces, 463 | .cards, 464 | .connections, 465 | .connection-types, 466 | .boxes, 467 | .tags, 468 | .notifications, 469 | .other 470 | color var(--primary) 471 | padding 2px 5px 472 | .all 473 | background khaki 474 | .users 475 | background #b9a8ff 476 | .spaces 477 | background pink 478 | .cards 479 | background violet 480 | .connections 481 | background salmon 482 | .connection-types 483 | background burlywood 484 | .boxes 485 | background lightskyblue 486 | .tags 487 | background mediumaquamarine 488 | .notifications 489 | background darkseagreen 490 | .other 491 | background cadetblue 492 | 493 | .table-wrap 494 | &.all, 495 | &.users, 496 | &.spaces, 497 | &.cards, 498 | &.connections, 499 | &.connection-types, 500 | &.boxes, 501 | &.tags, 502 | &.notifications, 503 | &.other 504 | background transparent 505 | border-width 2px 506 | border-style solid 507 | &.all 508 | border-color khaki 509 | &.users 510 | border-color #b9a8ff 511 | &.spaces 512 | border-color pink 513 | &.cards 514 | border-color violet 515 | &.connections 516 | border-color salmon 517 | &.connection-types 518 | border-color burlywood 519 | &.boxes 520 | border-color lightskyblue 521 | &.tags 522 | border-color mediumaquamarine 523 | &.notifications 524 | border-color darkseagreen 525 | &.other 526 | border-color cadetblue 527 | 528 | 529 | 530 | .get-label, 531 | .post-label, 532 | .patch-label 533 | .delete-label 534 | color rgba(255,255,255,0.9) 535 | .get-label 536 | background forestgreen 537 | .post-label 538 | background blueviolet 539 | .patch-label 540 | background peru 541 | .delete-label 542 | background firebrick 543 | 544 | .anchor 545 | display block 546 | position relative 547 | top -40px 548 | visibility hidden 549 | 550 | .froggo 551 | max-width 60px 552 | 553 | .cat 554 | max-width 150px 555 | 556 | .remove 557 | transform rotate(45deg) 558 | width 20px 559 | padding 5px 560 | 561 | .row 562 | display flex 563 | button 564 | margin-right 10px 565 | margin-bottom 2rem 566 | 567 | .moon-phase 568 | margin-bottom 0 569 | 570 | @import about 571 | @import guides 572 | @import overview --------------------------------------------------------------------------------