Skip to content

Commit 4ceb76e

Browse files
Sprinkles: Clean up public API and document on site (#360)
1 parent b8c8be1 commit 4ceb76e

40 files changed

+1288
-555
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
'@vanilla-extract/sprinkles': minor
3+
---
4+
5+
Clean up public API, deprecating old API names. Also adding sprinkles to the docs site and using `sprinkles` in favour of `atoms` for the canoncial examples.
6+
7+
API changes include:
8+
- Rename `createAtomicStyles` to `defineProperties`, `createAtomicStyles` is now deprecated
9+
- Rename `createAtomsFn` to `createSprinkles`, `createAtomsFn` is now deprecated
10+
- Rename `AtomicStyles` type to `SprinklesProperties`, `AtomicStyles` is now deprecated
11+
12+
### Migration Guide
13+
14+
```diff
15+
-import { createAtomicStyles, createAtomsFn } from '@vanilla-extract/sprinkles';
16+
+import { defineProperties, createSprinkles } from '@vanilla-extract/sprinkles';
17+
18+
-const responsiveProperties = createAtomicStyles({
19+
+const responsiveProperties = defineProperties({
20+
conditions: {
21+
mobile: {},
22+
tablet: { '@media': 'screen and (min-width: 768px)' },
23+
desktop: { '@media': 'screen and (min-width: 1024px)' }
24+
},
25+
defaultCondition: 'mobile',
26+
properties: {
27+
display: ['none', 'block', 'flex'],
28+
flexDirection: ['row', 'column'],
29+
padding: space
30+
// etc.
31+
}
32+
});
33+
34+
-export const sprinkles = createAtomsFn(responsiveProperties);
35+
+export const sprinkles = createSprinkles(responsiveProperties);
36+
```

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ document.write(`
7474

7575
---
7676

77-
Want to work at a higher level while maximising style re-use? Check out 🍨 [Sprinkles](https://github.com/seek-oss/vanilla-extract/tree/master/packages/sprinkles), our official zero-runtime atomic CSS framework, built on top of vanilla-extract.
77+
Want to work at a higher level while maximising style re-use? Check out 🍨 [Sprinkles](https://vanilla-extract.style/documentation/sprinkles-api), our official zero-runtime atomic CSS framework, built on top of vanilla-extract.
7878

7979
---
8080

@@ -1016,26 +1016,26 @@ document.write(`
10161016

10171017
Your recipe configuration can also make use of existing variables, classes and styles.
10181018

1019-
For example, you can use your `atoms` function from [Sprinkles.](https://github.com/seek-oss/vanilla-extract/tree/master/packages/sprinkles)
1019+
For example, you can pass in the result of your [`sprinkles`](https://vanilla-extract.style/documentation/sprinkles-api) function directly.
10201020

10211021
```ts
10221022
import { recipe } from '@vanilla-extract/recipes';
10231023
import { reset } from './reset.css.ts';
1024-
import { atoms } from './sprinkles.css.ts';
1024+
import { sprinkles } from './sprinkles.css.ts';
10251025

10261026
export const button = recipe({
1027-
base: [reset, atoms({ borderRadius: 'round' })],
1027+
base: [reset, sprinkles({ borderRadius: 'round' })],
10281028

10291029
variants: {
10301030
color: {
1031-
neutral: atoms({ background: 'neutral' }),
1032-
brand: atoms({ background: 'brand' }),
1033-
accent: atoms({ background: 'accent' })
1031+
neutral: sprinkles({ background: 'neutral' }),
1032+
brand: sprinkles({ background: 'brand' }),
1033+
accent: sprinkles({ background: 'accent' })
10341034
},
10351035
size: {
1036-
small: atoms({ padding: 'small' }),
1037-
medium: atoms({ padding: 'medium' }),
1038-
large: atoms({ padding: 'large' })
1036+
small: sprinkles({ padding: 'small' }),
1037+
medium: sprinkles({ padding: 'medium' }),
1038+
large: sprinkles({ padding: 'large' })
10391039
}
10401040
},
10411041

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { style, composeStyles } from '@vanilla-extract/css';
2-
import { atoms } from './sprinkles.css';
1+
import { style } from '@vanilla-extract/css';
2+
import { sprinkles } from './sprinkles.css';
33

4-
export const card = composeStyles(
5-
atoms({
4+
export const card = style([
5+
sprinkles({
66
background: {
77
lightMode: 'green-50',
88
darkMode: 'gray-800',
@@ -16,11 +16,11 @@ export const card = composeStyles(
1616
desktop: '8x',
1717
},
1818
}),
19-
style({
19+
{
2020
transition: 'transform 4s ease-in-out',
2121
':hover': {
2222
cursor: 'default',
2323
transform: 'scale(2) rotate(720deg)',
2424
},
25-
}),
26-
);
25+
},
26+
]);

examples/webpack-react/src/App.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { atoms } from './sprinkles.css';
1+
import { sprinkles } from './sprinkles.css';
22
import * as styles from './App.css';
33

44
export const App = () => (
55
<div
6-
className={atoms({
6+
className={sprinkles({
77
background: {
88
lightMode: 'green-500',
99
darkMode: 'gray-900',
@@ -17,7 +17,7 @@ export const App = () => (
1717
>
1818
<div className={styles.card}>
1919
<div
20-
className={atoms({
20+
className={sprinkles({
2121
display: 'flex',
2222
alignItems: 'center',
2323
flexDirection: 'column',
@@ -28,7 +28,7 @@ export const App = () => (
2828
})}
2929
>
3030
<h1
31-
className={atoms({
31+
className={sprinkles({
3232
fontFamily: 'body',
3333
textAlign: 'center',
3434
typeSize: {
@@ -49,7 +49,7 @@ export const App = () => (
4949
</span>
5050
</h1>
5151
<h2
52-
className={atoms({
52+
className={sprinkles({
5353
fontFamily: 'body',
5454
color: {
5555
lightMode: 'green-700',

examples/webpack-react/src/sprinkles.css.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { createAtomicStyles, createAtomsFn } from '@vanilla-extract/sprinkles';
1+
import { defineProperties, createSprinkles } from '@vanilla-extract/sprinkles';
22
import { vars } from './vars.css';
33

4-
const responsiveStyles = createAtomicStyles({
4+
const responsiveProperties = defineProperties({
55
conditions: {
66
mobile: {},
77
tablet: { '@media': 'screen and (min-width: 768px)' },
@@ -35,7 +35,7 @@ const responsiveStyles = createAtomicStyles({
3535
},
3636
});
3737

38-
const colorModeStyles = createAtomicStyles({
38+
const colorModeProperties = defineProperties({
3939
conditions: {
4040
lightMode: {},
4141
darkMode: { '@media': '(prefers-color-scheme: dark)' },
@@ -47,4 +47,7 @@ const colorModeStyles = createAtomicStyles({
4747
},
4848
});
4949

50-
export const atoms = createAtomsFn(responsiveStyles, colorModeStyles);
50+
export const sprinkles = createSprinkles(
51+
responsiveProperties,
52+
colorModeProperties,
53+
);

fixtures/sprinkles/src/index.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import {
2-
atoms,
2+
sprinkles,
33
mapResponsiveValue,
44
normalizeResponsiveValue,
5-
preComposedAtoms,
6-
preComposedAtomsUsedInSelector,
5+
preComposedSprinkles,
6+
preComposedSprinklesUsedInSelector,
77
} from './styles.css';
88
import testNodes from '../test-nodes.json';
99

1010
function render() {
1111
document.body.innerHTML = `
12-
<div id="${testNodes.root}" class="${atoms({
12+
<div id="${testNodes.root}" class="${sprinkles({
1313
display: normalizeResponsiveValue('block').mobile,
1414
paddingTop: mapResponsiveValue(
1515
{
@@ -21,8 +21,8 @@ function render() {
2121
})}">
2222
Sprinkles
2323
</div>
24-
<div class="${preComposedAtoms}">Precomposed atoms</div>
25-
<div class="${preComposedAtomsUsedInSelector}">Precomposed Atoms Used In Selector</div>
24+
<div class="${preComposedSprinkles}">Precomposed sprinkles</div>
25+
<div class="${preComposedSprinklesUsedInSelector}">Precomposed Sprinkles Used In Selector</div>
2626
`;
2727
}
2828

fixtures/sprinkles/src/styles.css.ts

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { globalStyle, createVar } from '@vanilla-extract/css';
22
import {
3-
createAtomicStyles,
4-
createAtomsFn,
3+
defineProperties,
4+
createSprinkles,
55
createMapValueFn,
66
createNormalizeValueFn,
77
} from '@vanilla-extract/sprinkles';
88

99
const alpha = createVar();
1010
const textAlpha = createVar();
1111

12-
const responsiveStyles = createAtomicStyles({
12+
const responsiveProperties = defineProperties({
1313
defaultCondition: 'mobile',
1414
conditions: {
1515
mobile: {},
@@ -47,7 +47,7 @@ const responsiveStyles = createAtomicStyles({
4747
},
4848
});
4949

50-
const styleWithNoConditions = createAtomicStyles({
50+
const unconditionalProperties = defineProperties({
5151
properties: {
5252
color: {
5353
red: {
@@ -64,13 +64,16 @@ const styleWithNoConditions = createAtomicStyles({
6464
},
6565
});
6666

67-
export const atoms = createAtomsFn(responsiveStyles, styleWithNoConditions);
67+
export const sprinkles = createSprinkles(
68+
responsiveProperties,
69+
unconditionalProperties,
70+
);
6871

69-
export const mapResponsiveValue = createMapValueFn(responsiveStyles);
72+
export const mapResponsiveValue = createMapValueFn(responsiveProperties);
7073
export const normalizeResponsiveValue =
71-
createNormalizeValueFn(responsiveStyles);
74+
createNormalizeValueFn(responsiveProperties);
7275

73-
export const preComposedAtoms = atoms({
76+
export const preComposedSprinkles = sprinkles({
7477
display: 'block',
7578
paddingTop: 'small',
7679
background: 'red',
@@ -79,11 +82,11 @@ export const preComposedAtoms = atoms({
7982
textOpacity: 0.8,
8083
});
8184

82-
export const preComposedAtomsUsedInSelector = atoms({
85+
export const preComposedSprinklesUsedInSelector = sprinkles({
8386
display: 'flex',
8487
paddingTop: 'medium',
8588
});
8689

87-
globalStyle(`body > ${preComposedAtomsUsedInSelector}`, {
90+
globalStyle(`body > ${preComposedSprinklesUsedInSelector}`, {
8891
background: 'red',
8992
});

0 commit comments

Comments
 (0)