Skip to content

New version #145

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 442 commits into from
Mar 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
442 commits
Select commit Hold shift + click to select a range
e223bd2
Remove old script docs
pomber Apr 19, 2021
31633bf
Extract tabs
pomber Apr 28, 2021
d7e79cb
Add ref and overflow props
pomber May 2, 2021
6737a3c
Add editor-transition
pomber May 6, 2021
4bfaada
Add tab transitions
pomber May 7, 2021
0188480
Fix background and south panel height
pomber May 7, 2021
20fb709
Fix code transitions
pomber May 8, 2021
8dd5e66
Add mdx steps story
pomber May 11, 2021
8ff32b1
Fix story width
pomber May 11, 2021
e1dbf94
Add codeProps
pomber May 11, 2021
4e39e4a
Remember tabs from prev step
pomber May 11, 2021
c6f89c7
Fix step starting frame
pomber May 11, 2021
ea5ba8b
Add settings param
pomber May 12, 2021
ceecca5
Fix accidental className override
pomber May 12, 2021
10dbf6e
Add files from prev steps
pomber May 13, 2021
a667d8e
Add react steps story
pomber May 13, 2021
1fcf595
Change svelte example
pomber May 20, 2021
56e751f
Better defaults
pomber May 26, 2021
a019e38
Fix terminal panel
pomber May 26, 2021
3704f75
Tween tab width
pomber May 26, 2021
014d9f0
Update editor hike stories
pomber May 26, 2021
d03dd9e
Add mini editor spring
pomber May 27, 2021
54a3ff3
Rename editor tween
pomber May 27, 2021
059c384
Refactor scrollycoding
pomber Jun 9, 2021
8191339
Remove SSR warning
pomber Jun 17, 2021
9f26798
Fix mini editor name
pomber Jun 24, 2021
0da7533
Fix wrong ending frame in 2to1South
pomber Jun 24, 2021
b6f3cda
Fix last frame again
pomber Jun 24, 2021
2246098
Merge pull request #67 from code-hike/split-editor
pomber Jun 26, 2021
675a9e6
Extract smooth-code package
pomber Jun 26, 2021
28d3a62
Merge pull request #69 from code-hike/smooth-code
pomber Jun 26, 2021
1300d30
Add chromatic step
pomber Jun 26, 2021
73d9c15
Try another fetch-depth
pomber Jun 26, 2021
66d4a5d
Trigger build
pomber Jun 26, 2021
b4ce8b3
Merge pull request #70 from code-hike/storybook-action
pomber Jun 26, 2021
4aa8849
Update readme.md
pomber Jul 1, 2021
2b9d7f5
Customize storybook
pomber Jul 4, 2021
9ec621d
Add docs script
pomber Jul 7, 2021
6a1f6a0
Trigger netlify
pomber Jul 7, 2021
b7bafb0
Remove submodules
pomber Jul 7, 2021
48b38eb
Add logs
pomber Jul 7, 2021
1be89cb
New mini browser docs
pomber Jul 11, 2021
3ae9f6b
Remove editor hike docs
pomber Jul 11, 2021
18f1a5e
Merge pull request #71 from code-hike/add-storybook-docs
pomber Jul 11, 2021
f045cec
Add springConfig prop to editor spring
pomber Jul 11, 2021
e255b42
Update yarn lock
pomber Jul 11, 2021
67b5154
Change default spring
pomber Jul 11, 2021
1647dbf
Add spring config to scrollytelling
pomber Jul 11, 2021
a98c407
Upgrade sandpack
pomber Jul 11, 2021
b3e0bf9
Add access public to all packages
pomber Jul 11, 2021
9e3cd0e
Remove hook call inside useMemo
pomber Jul 11, 2021
68fddf6
Merge pull request #75 from code-hike/spring-prop
pomber Jul 16, 2021
39bf548
Use shiki
pomber Jul 21, 2021
89164f6
Separate dimensions
pomber Jul 23, 2021
cffdf3e
Refactor smooth code
pomber Jul 25, 2021
d9f7292
Another refactor
pomber Jul 25, 2021
a07b2b0
Fix highlight when lang and theme are ready
pomber Jul 25, 2021
cc0c118
Add annotations
pomber Jul 28, 2021
e4e8c54
Patch shiki node dependencies
pomber Jul 28, 2021
a6a3f60
Refactor CodeMap
pomber Jul 30, 2021
ade5d72
Create step parser
pomber Aug 7, 2021
e1fb282
Add token groups
pomber Aug 8, 2021
ba16a8e
Inline annotations
pomber Aug 10, 2021
11adde0
Avoid unnecesary recalculations
pomber Aug 11, 2021
87864a9
Add multiline annotations
pomber Aug 11, 2021
04c2884
Add annotations to editor
pomber Aug 12, 2021
cf532d2
Fix line padding
pomber Aug 12, 2021
6c844fa
Add data prop
pomber Aug 12, 2021
c58a10a
Add annotation prop to MiniEditor
pomber Aug 12, 2021
2395a40
Use themes in mini-editor
pomber Aug 16, 2021
dc9c2e0
Try treeshaking
pomber Sep 11, 2021
471857d
Remove old packages
pomber Sep 18, 2021
8440af1
Add highlighter package
pomber Sep 18, 2021
72df248
Add code-tween and code-spring
pomber Sep 18, 2021
6c28526
Add editor-spring and editor-tween
pomber Sep 20, 2021
49903e0
Add mdx package
pomber Sep 20, 2021
045c5cf
Add mdx component
pomber Sep 20, 2021
67739f9
Editor default height
pomber Sep 22, 2021
71107aa
Add editor spring story
pomber Sep 23, 2021
4adcb9a
Test overflows
pomber Sep 23, 2021
e4f9363
More overflow tests
pomber Sep 23, 2021
8e9455c
Add focus to mdx
pomber Sep 23, 2021
970b42a
Add link annotations
pomber Sep 25, 2021
af1fec1
Add jest
pomber Sep 25, 2021
957ccac
Remove jest
pomber Sep 25, 2021
9dd19b2
Add mdx test website
pomber Sep 25, 2021
2616b6b
Add dynamic routes
pomber Sep 25, 2021
0046374
Add mdx-test command
pomber Sep 26, 2021
f796bb2
Improve mdx-test
pomber Sep 26, 2021
bca9d28
Add multi file
pomber Sep 27, 2021
f900e40
Rename code hike export
pomber Sep 27, 2021
485d8c3
Better playground
pomber Sep 29, 2021
824a4b1
Theme selector
pomber Sep 29, 2021
160f100
Playground query
pomber Sep 29, 2021
6557a45
Move code
pomber Sep 30, 2021
4d0c9fa
Fix editor
pomber Oct 1, 2021
3e7b214
Add props estree
pomber Oct 3, 2021
60cce2e
Upgrade shiki
pomber Oct 3, 2021
4ccb4f9
Add section focus
pomber Oct 3, 2021
1310cb6
Rename playground
pomber Oct 4, 2021
3bbe788
Add playgroundexport script
pomber Oct 4, 2021
4c6fb89
Add missing dependency
pomber Oct 4, 2021
979e373
Fix export script
pomber Oct 4, 2021
bbef8e3
Use server side props
pomber Oct 4, 2021
a901bea
Add critters dev dep because of netlify error
pomber Oct 4, 2021
a7a02e1
Changeing fs promises because of netlify
pomber Oct 4, 2021
9fee3a3
Try again
pomber Oct 4, 2021
8e6c36d
Last desperate try
pomber Oct 4, 2021
122e7ce
Change react peer dep
pomber Oct 5, 2021
f0326e2
Fork value-to-estree
pomber Oct 10, 2021
d185571
No more serialized props
pomber Oct 10, 2021
198b0ef
Update readme.md
pomber Oct 11, 2021
e7f7035
Spotlight component
pomber Oct 13, 2021
ec98b6f
Fix heights
pomber Oct 14, 2021
2028902
Spotlight style
pomber Oct 15, 2021
97158de
Add scrollycoding files
pomber Oct 15, 2021
d9fd217
Extract steps logic
pomber Oct 18, 2021
f5eef4a
Transform scrollycoding
pomber Oct 18, 2021
2aa8e8f
Add scrollycoding styles
pomber Oct 18, 2021
d3a3025
Change spotlight style
pomber Oct 23, 2021
60a8361
Fix build script
pomber Oct 23, 2021
b6a4963
Add font-familiy test
pomber Oct 23, 2021
4b95ee6
Auto import code hike
pomber Oct 28, 2021
04fafa1
Use line count for auto height
pomber Oct 29, 2021
cd9e81b
Change dimensions
pomber Oct 29, 2021
cec8054
Add SimpleFrame
pomber Nov 4, 2021
70989d1
Delete old files
pomber Nov 4, 2021
3f914d4
Add default editor height
pomber Nov 4, 2021
9e91074
Spotlight css
pomber Nov 5, 2021
790e974
Scrollycoding styles
pomber Nov 5, 2021
e9bb465
Change spotlight styles
pomber Nov 7, 2021
651eff8
Fix wrong lang
pomber Nov 7, 2021
bd15ff1
Scrollycoding styles
pomber Nov 8, 2021
f5b1b48
Add preview
pomber Nov 9, 2021
7150a39
Fetch preset config
pomber Nov 9, 2021
6958007
Add metastring annotations
pomber Nov 11, 2021
bd9bc9e
Get border from theme
pomber Nov 12, 2021
e8d69c7
Get annotations from code
pomber Nov 12, 2021
44549fa
Move focus to utils package
pomber Nov 12, 2021
bd9689c
Add relative focus
pomber Nov 13, 2021
070e996
Add links and labels
pomber Nov 13, 2021
728db91
Add focus comments
pomber Nov 14, 2021
9227945
Extract jsx annotations
pomber Nov 14, 2021
e35f30d
Fix sections
pomber Nov 15, 2021
a14365e
Add preview to spotlight
pomber Nov 16, 2021
e149e3d
Better section links
pomber Nov 16, 2021
ea2b270
Refactor
pomber Nov 16, 2021
a805afc
Add mdast deps
pomber Nov 17, 2021
fae9afe
JSX annotations
pomber Nov 19, 2021
5562b2f
Add demo files to bundler
pomber Nov 19, 2021
1351c85
Parse mdxJsxAttributeValueExpression
pomber Nov 19, 2021
59321d0
Make highlighter load all languages
pomber Nov 21, 2021
8889b5f
Change react dep
pomber Nov 22, 2021
c8f7b29
Split client and server code
pomber Nov 22, 2021
eda31ba
Add useMemo to useDimensions
pomber Nov 25, 2021
8922d44
Add node-fetch
pomber Dec 2, 2021
5617b6a
Remove default colors from editor
pomber Dec 2, 2021
15bb99d
New readme
pomber Dec 2, 2021
efd8888
Merge branch 'next' into shiki
pomber Dec 2, 2021
6eb7165
Merge pull request #77 from code-hike/shiki
pomber Dec 2, 2021
9fe5366
Add set up instructions
pomber Dec 3, 2021
f8d6535
Update readme.md
pomber Dec 3, 2021
f0a55af
Make tabs clickable
pomber Dec 4, 2021
a80f7a2
Merge pull request #86 from code-hike/clickable-tabs
pomber Dec 4, 2021
32f989b
Update readme.md
pomber Dec 7, 2021
7bd2762
Update readme
pomber Dec 8, 2021
debdf51
Make old packages private
pomber Dec 8, 2021
934a105
Remove dead code
pomber Dec 9, 2021
2112ee3
Split annotation focus string
pomber Dec 9, 2021
5804e66
Merge pull request #94 from code-hike/fix-annotation-focus-string
pomber Dec 9, 2021
d7dfb85
Stop assuming comment annotations
pomber Dec 18, 2021
4164562
Merge pull request #97 from code-hike/comments-that-arent-annotations
pomber Dec 18, 2021
fad8b64
Change editor frame
pomber Dec 24, 2021
5c1465b
Add memo to story
pomber Dec 24, 2021
d32feb5
Better height for next file
pomber Dec 25, 2021
b790fab
Merge pull request #98 from code-hike/editor-height
pomber Dec 25, 2021
1f33495
Add slideshow component
pomber Dec 26, 2021
dea83e9
Fix zoom
pomber Dec 27, 2021
4abcdea
Better small mini-browser
pomber Dec 27, 2021
9d682d6
Merge pull request #99 from code-hike/slides
pomber Dec 27, 2021
2e0a843
Fix comment annotations
pomber Dec 28, 2021
60e0c20
Merge pull request #101 from code-hike/patch-1
pomber Jan 4, 2022
faafeb2
Allow empty lang
pomber Jan 6, 2022
8b13e64
Merge pull request #103 from code-hike/empty-lang
pomber Jan 7, 2022
d3f27ad
Fix annotation regex
pomber Jan 7, 2022
ea217c7
Merge pull request #105 from code-hike/fix-annotation-regex
pomber Jan 7, 2022
c7a536a
Add bundle analyzer
pomber Jan 12, 2022
54ad328
Add line groups story
pomber Jan 12, 2022
d74c69d
Remove unnecesary div
pomber Jan 12, 2022
4b939f0
Change code left pad
pomber Jan 12, 2022
34ba7f5
Add fragment key
pomber Jan 13, 2022
e5998e1
Fix themes story
pomber Jan 14, 2022
9ec80dc
Move theme to utils
pomber Jan 15, 2022
23761a7
Add line number option
pomber Jan 16, 2022
a118f8a
Move styles to css
pomber Jan 16, 2022
04b44e6
Add code config variable
pomber Jan 16, 2022
a1cf9e4
Add code css
pomber Jan 16, 2022
f752074
Merge pull request #111 from code-hike/line-numbers
pomber Jan 16, 2022
7b3a2f1
Force zero padding on pre
pomber Jan 24, 2022
c7cd6ea
Wrap codeblocks and codegroups
pomber Jan 25, 2022
21b32dd
Expose preview component
pomber Jan 26, 2022
acc0e8a
Pass theme to mini-browser
pomber Jan 26, 2022
0186a87
Patch mini-terminal
pomber Jan 26, 2022
9c7c33a
Fix not-prose
pomber Jan 26, 2022
f0bb3a7
Forward preview props
pomber Jan 26, 2022
11d0cf6
Set mini browser colors
pomber Jan 26, 2022
6c0568c
Apply style to ch-preview
pomber Jan 26, 2022
224fea3
Add inline code component
pomber Jan 27, 2022
d35381d
Add mark annotation
pomber Jan 27, 2022
ba9be7d
Fix mark comment annotation
pomber Jan 27, 2022
9a0c186
Add default margin
pomber Feb 3, 2022
056ec02
Remove console log
pomber Feb 4, 2022
099ea14
Merge pull request #116 from code-hike/pre-padding-0
pomber Feb 5, 2022
5b2426a
Fix firefox copypasting
pomber Feb 6, 2022
5f18de1
Merge pull request #124 from code-hike/fix-firefox-copypasting
pomber Feb 6, 2022
592f6f1
Selection color from theme
pomber Feb 6, 2022
9111a23
Merge pull request #125 from code-hike/selection-color
pomber Feb 6, 2022
19a4397
Handle invalid language
pomber Feb 7, 2022
846fec0
Merge pull request #126 from code-hike/handle-invalid-language
pomber Feb 7, 2022
a5da30c
Fix some deps
pomber Feb 12, 2022
45448ed
Add color scheme
pomber Feb 14, 2022
efa7caa
Merge pull request #129 from code-hike/fix-dependencies
pomber Feb 15, 2022
f7c6ae0
Fix color-scheme warning
pomber Feb 17, 2022
8588dfb
More robust config
pomber Feb 18, 2022
12aaad1
fix: changes style property
ghoshnirmalya Feb 21, 2022
f222408
Merge pull request #134 from ghoshnirmalya/patch-1
pomber Feb 22, 2022
5bc84cd
Add some css vars
pomber Feb 22, 2022
fbbee30
Change tab styles
pomber Feb 22, 2022
22c5e04
Merge pull request #135 from code-hike/better-errors-1
pomber Feb 22, 2022
91e3d56
Reset some code styles
pomber Feb 24, 2022
f94b02e
Merge pull request #136 from code-hike/reset-code-styles
pomber Feb 24, 2022
04897c8
Add autoImport setting
pomber Feb 24, 2022
8c67c2f
Merge pull request #137 from code-hike/autoimport-setting
pomber Feb 24, 2022
0dc5533
Fix transitions
pomber Feb 28, 2022
3be43db
Update shiki
pomber Feb 28, 2022
942167f
Change code link to hover
pomber Feb 28, 2022
63c113e
Support links in scrollycoding
pomber Feb 28, 2022
c14b4ba
Transform emphasis code into InlineCode
pomber Feb 28, 2022
9fcdf18
Highlight inline code
pomber Feb 28, 2022
f79d50f
Better link styles
pomber Feb 28, 2022
9c91385
Use tokens from editor step
pomber Mar 1, 2022
2125f57
Update uarn lock
pomber Mar 1, 2022
45d5e45
Fix dependency
pomber Mar 1, 2022
87bfe7d
Merge pull request #139 from code-hike/better-sections
pomber Mar 1, 2022
e149ea9
Fix quirks mode height
pomber Mar 3, 2022
ea53990
Merge pull request #143 from code-hike/fix-quirks-mode-height
pomber Mar 3, 2022
d40a153
Remove old packages
pomber Mar 3, 2022
4c008e5
Add docs link
pomber Mar 3, 2022
4c654ac
merge
pomber Mar 3, 2022
4d4298e
Merge pull request #146 from code-hike/merge-03
pomber Mar 3, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Release

on:
push:

jobs:
release:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip') && !contains(github.event.head_commit.message, 'skip ci')"
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 10 # 👈 Required to retrieve git history

- name: Prepare repository
run: git fetch --unshallow --tags

- name: Use Node.js 14.x
uses: actions/setup-node@v1
with:
node-version: 14.x

- name: Cache node modules
uses: actions/cache@v1
with:
path: node_modules
key: yarn-deps-${{ hashFiles('yarn.lock') }}
restore-keys: |
yarn-deps-${{ hashFiles('yarn.lock') }}

- name: Create Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
yarn install --frozen-lockfile 2>&1 | grep -v '^[warning|info]'
yarn build
yarn release
# - name: Publish to Chromatic
# uses: chromaui/action@v1
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
# workingDir: packages/storybook
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
node_modules
.next
todo.md
current.md
dist
yarn-error.log
site/out
.prettierignore
.env
.vscode
storybook-static
packages/playground/out
packages/starter
12 changes: 0 additions & 12 deletions .gitmodules

This file was deleted.

9 changes: 9 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# This configuration file was automatically generated by Gitpod.
# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file)
# and commit this file to your remote git repository to share the goodness with others.

tasks:
- init: yarn install && yarn run build
command: yarn run playground


1 change: 0 additions & 1 deletion .prettierignore

This file was deleted.

1 change: 0 additions & 1 deletion demos/hooks-talk-demo
Submodule hooks-talk-demo deleted from c1e27c
1 change: 0 additions & 1 deletion demos/nextjs-post-demo
Submodule nextjs-post-demo deleted from 608a6d
1 change: 0 additions & 1 deletion demos/swr-minidocs-demo
Submodule swr-minidocs-demo deleted from 06b344
1 change: 0 additions & 1 deletion demos/the-x-in-mdx
Submodule the-x-in-mdx deleted from d1ee69
11 changes: 11 additions & 0 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"version": "0.3.0-next.0",
"npmClient": "yarn",
"packages": ["packages/*"],
"useWorkspaces": true,
"command": {
"publish": {
"verifyAccess": false
}
}
}
File renamed without changes.
3 changes: 0 additions & 3 deletions netlify.toml

This file was deleted.

42 changes: 22 additions & 20 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,31 @@
"workspaces": {
"packages": [
"packages/*",
"demos/*",
"storybook",
"site"
"external/*"
]
},
"scripts": {
"dev": "yarn workspace xmdx dev",
"mbrowser": "yarn workspace @code-hike/mini-browser",
"mframe": "yarn workspace @code-hike/mini-frame",
"mterminal": "yarn workspace @code-hike/mini-terminal",
"meditor": "yarn workspace @code-hike/mini-editor",
"scroller": "yarn workspace @code-hike/scroller",
"player": "yarn workspace @code-hike/player",
"sim-user": "yarn workspace @code-hike/sim-user",
"storybook": "yarn workspace storybook",
"site": "yarn workspace site",
"ch-build": "yarn workspace @code-hike/build",
"watch-packages": "yarn mframe watch & yarn mterminal watch & yarn scroller watch & yarn sim-user watch & yarn player watch & yarn mbrowser watch & yarn meditor watch",
"build-packages": "yarn mframe build && yarn mterminal build && yarn scroller build && yarn sim-user build && yarn player build && yarn mbrowser build && yarn meditor build",
"build-site": "yarn build-packages && yarn workspace site export"
"build": "lerna run --stream x -- build",
"watch": "lerna run --since HEAD --exclude-dependents --parallel x -- watch",
"watch-all": "lerna run --parallel x -- watch",
"storybook": "lerna run --scope storybook start --stream",
"playground": "lerna run --scope @*/playground dev --stream",
"docs": "lerna run build-docs --stream",
"build-playground": "lerna run --scope @*/playground build --stream",
"release": "auto shipit"
},
"dependencies": {
"@emotion/core": "10.0.7",
"theme-ui": "0.2.31"
"devDependencies": {
"auto": "^10.18.7",
"lerna": "^4.0.0",
"prettier": "^2.5.1"
},
"repository": "code-hike/codehike",
"author": "pomber <[email protected]>",
"auto": {
"plugins": [
"npm",
"released"
],
"onlyPublishWithReleaseLabel": true
}
}
File renamed without changes.
13 changes: 0 additions & 13 deletions packages/build/build.js

This file was deleted.

15 changes: 0 additions & 15 deletions packages/build/package.json

This file was deleted.

50 changes: 0 additions & 50 deletions packages/build/rollup.config.js

This file was deleted.

25 changes: 12 additions & 13 deletions packages/player/package.json → packages/classer/package.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,29 @@
{
"name": "@code-hike/player",
"version": "0.2.1",
"main": "dist/index.js",
"name": "@code-hike/classer",
"version": "0.3.0-next.0",
"main": "dist/index.cjs.js",
"typings": "dist/index.d.ts",
"module": "dist/index.esm.js",
"files": [
"dist"
],
"scripts": {
"build": "ch-build",
"watch": "ch-build --watch"
"x": "x"
},
"devDependencies": {
"@code-hike/build": "0.0.1",
"@types/react": "^16.9.38",
"react": "^16.13.1"
"@code-hike/script": "0.0.1",
"@types/react": "^17.0.2",
"react": "^17.0.2"
},
"dependencies": {},
"peerDependencies": {
"react": ">=16.8"
"react": "^16.8.3 || ^17 || ^18"
},
"keywords": [
"react"
],
"homepage": "https://codehike.org",
"repository": "code-hike/codehike",
"publishConfig": {
"access": "public"
},
"author": "Rodrigo Pombo",
"license": "MIT",
"funding": {
"type": "opencollective",
Expand Down
106 changes: 106 additions & 0 deletions packages/classer/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
> Classer is a tool from [Code Hike](https://codehike.org)

A little package to make React component libraries interoperable with most styling solutions. ([See this twitter thread explaining why this is useful](https://twitter.com/pomber/status/1362125599607820290))

You write your library code like this:

```jsx
// foo-library code
import { useClasser } from "@code-hike/classer"

export function Foo({ classes }) {
const c = useClasser("foo", classes)
return (
<div className={c("container")}>
<h1 className={c("title")}>Hello</h1>
<p className={c("description")}>World</p>
<img
className={c("img")}
src="https://placekitten.com/200/200"
/>
</div>
)
}
```

And the library consumers use it like this in their apps:

```jsx
import { Foo } from "foo-library"

const classes = {
"foo-title": "my-app-blue",
"foo-img": "rounded-corners some-border",
}

function MyApp() {
return <Foo classes={classes} />
}
```

`MyApp` renders this HTML:

```html
<div class="foo-container">
<h1 class="foo-title my-app-blue">Hello</h1>
<p class="foo-description">World</p>
<img
class="foo-img rounded-corners some-border"
src="https://placekitten.com/200/200"
/>
</div>
```

Examples:

- [With Emotion](https://codesandbox.io/s/classer-emotion-b7go0)
- [With Tailwind](https://codesandbox.io/s/classer-tailwind-wfs1d)

## Context

You can also do this (to avoid passing `classes` to nested components):

```jsx
// foo-library code
import {
useClasser,
ClasserProvider,
} from "@code-hike/classer"

export function Foo({ classes }) {
return (
<ClasserProvider classes={classes}>
<FirstChild />
<SecondChild />
</ClasserProvider>
)
}

function FirstChild() {
const c = useClasser("foo-first")
return <h1 className={c("title")}>Hi</h1>
}

function SecondChild() {
const c = useClasser("foo-second")
return <h1 className={c("title")}>Ho</h1>
}
```

```jsx
import { Foo } from "./foo-library"
import styles from "./app.module.css"

const classes = {
"foo-title": styles.myTitle,
"foo-img": styles.myImage,
}

function MyApp() {
return <Foo classes={classes} />
}
```

## License

MIT
Loading