emily-css 1.0.17 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +21 -29
- package/package.json +1 -1
- package/src/index.js +28 -16
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ emilyCSS is built for real-world systems like **Drupal, Power Pages, WordPress,
|
|
|
20
20
|
npx emily-css init
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
This creates your `emily.config.json`, walks you through your brand settings, and runs your first build.
|
|
23
|
+
This creates your `emily.config.json`, walks you through your brand settings (colours, fonts, spacing, etc.), and runs your first build.
|
|
24
24
|
|
|
25
25
|
### 2. Link the CSS
|
|
26
26
|
|
|
@@ -28,17 +28,13 @@ This creates your `emily.config.json`, walks you through your brand settings, an
|
|
|
28
28
|
<link rel="stylesheet" href="./dist/emily.min.css">
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
### 3.
|
|
31
|
+
### 3. Start Building
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
npx emily-css watch # Rebuilds automatically on config/template changes
|
|
35
|
-
npx emily-css build # Manual rebuild
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Open the showcase:
|
|
33
|
+
Use the generated utilities and browse the showcase for ready-to-copy components.
|
|
39
34
|
|
|
40
35
|
```bash
|
|
41
|
-
|
|
36
|
+
npx emily-css build # Rebuild after config changes
|
|
37
|
+
npx emily-css watch # Watch mode for development
|
|
42
38
|
```
|
|
43
39
|
|
|
44
40
|
## Core Features
|
|
@@ -48,30 +44,24 @@ npm run emily:showcase # Serves at http://localhost:3456
|
|
|
48
44
|
- **Accessibility First** — Focus-visible rings, motion utilities, WCAG 2.2 AA colours
|
|
49
45
|
- **No Build Pipeline Required** — Just a static CSS file
|
|
50
46
|
- **Smart Purge** — Remove unused utilities for tiny production files
|
|
51
|
-
- **UI Starter Kit** — Copy-paste accessible components from
|
|
47
|
+
- **UI Starter Kit** — Copy-paste accessible components from showcase.html
|
|
52
48
|
|
|
53
49
|
## Commands
|
|
54
50
|
|
|
55
51
|
```bash
|
|
56
|
-
npx emily-css init
|
|
57
|
-
npx emily-css build
|
|
58
|
-
npx emily-css watch
|
|
59
|
-
npx emily-css purge
|
|
52
|
+
npx emily-css init # Setup config + first build
|
|
53
|
+
npx emily-css build # Regenerate CSS
|
|
54
|
+
npx emily-css watch # Development watch mode
|
|
55
|
+
npx emily-css purge # Remove unused styles for production
|
|
60
56
|
```
|
|
61
57
|
|
|
62
58
|
## How Purge Works
|
|
63
59
|
|
|
64
60
|
emilyCSS scans your templates for used class names and removes everything else.
|
|
65
61
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
```json
|
|
69
|
-
"purge": {
|
|
70
|
-
"extensions": [".html", ".php", ".twig", ".liquid", ".jsx", ".vue", ".astro"]
|
|
71
|
-
}
|
|
72
|
-
```
|
|
62
|
+
Supported files: `.html`, `.php`, `.twig`, `.liquid`, `.jsx`, `.vue`, `.astro`, etc. (configurable).
|
|
73
63
|
|
|
74
|
-
**Important:** Dynamically constructed classes
|
|
64
|
+
**Important:** Dynamically constructed classes like `bg-${colour}` are not detected. Use static strings or add them to the safelist.
|
|
75
65
|
|
|
76
66
|
## File Size (Typical)
|
|
77
67
|
|
|
@@ -80,7 +70,9 @@ Configure it in `emily.config.json`:
|
|
|
80
70
|
| Full build | ~1.1 MB |
|
|
81
71
|
| After purge | 10–50 KB |
|
|
82
72
|
|
|
83
|
-
## Configuration
|
|
73
|
+
## Configuration
|
|
74
|
+
|
|
75
|
+
Edit `emily.config.json`:
|
|
84
76
|
|
|
85
77
|
```json
|
|
86
78
|
{
|
|
@@ -95,7 +87,7 @@ Configure it in `emily.config.json`:
|
|
|
95
87
|
"neutral": "#57534E"
|
|
96
88
|
},
|
|
97
89
|
"purge": {
|
|
98
|
-
"
|
|
90
|
+
"content": ["./**/*.{html,php,jsx,tsx,vue}"]
|
|
99
91
|
}
|
|
100
92
|
}
|
|
101
93
|
```
|
|
@@ -104,12 +96,12 @@ After changes: `npx emily-css build`
|
|
|
104
96
|
|
|
105
97
|
## Component Showcase
|
|
106
98
|
|
|
107
|
-
After
|
|
99
|
+
After your first build, open `showcase.html` in your browser. It contains production-ready, accessible components (buttons, forms, alerts, cards, etc.) built with your brand.
|
|
108
100
|
|
|
109
101
|
## EmilyUI vs emilyCSS
|
|
110
102
|
|
|
111
103
|
- **EmilyUI** — The broader brand / ecosystem
|
|
112
|
-
- **emilyCSS** — The current product (
|
|
104
|
+
- **emilyCSS** — The current product (the emily-css npm package + CLI)
|
|
113
105
|
|
|
114
106
|
## Example Components
|
|
115
107
|
|
|
@@ -124,7 +116,7 @@ After building, run `npm run emily:showcase` and visit `http://localhost:3456`.
|
|
|
124
116
|
### Responsive Card
|
|
125
117
|
|
|
126
118
|
```html
|
|
127
|
-
<div class="w-full md:w-96 p-6 rounded-
|
|
119
|
+
<div class="w-full md:w-96 p-6 rounded-xl bg-white border border-neutral-20 shadow-sm">
|
|
128
120
|
<h2 class="text-2xl font-semibold text-neutral-90">Card Title</h2>
|
|
129
121
|
<p class="mt-3 text-neutral-70">Content goes here.</p>
|
|
130
122
|
</div>
|
|
@@ -132,7 +124,7 @@ After building, run `npm run emily:showcase` and visit `http://localhost:3456`.
|
|
|
132
124
|
|
|
133
125
|
## Fonts
|
|
134
126
|
|
|
135
|
-
emilyCSS applies font stacks but does not include font files.
|
|
127
|
+
emilyCSS applies font stacks but does not include font files. Recommended approach:
|
|
136
128
|
|
|
137
129
|
```bash
|
|
138
130
|
npm install @fontsource/inter @fontsource/lexend
|
|
@@ -147,4 +139,4 @@ Then import the weights you need.
|
|
|
147
139
|
|
|
148
140
|
## License
|
|
149
141
|
|
|
150
|
-
MIT
|
|
142
|
+
MIT
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -983,19 +983,40 @@ function buildFullFramework() {
|
|
|
983
983
|
overflow-wrap: break-word;
|
|
984
984
|
}
|
|
985
985
|
|
|
986
|
-
/* Code
|
|
986
|
+
/* Code — terminal style by default */
|
|
987
|
+
code {
|
|
988
|
+
font-family: "Menlo", "Monaco", "Courier New", monospace;
|
|
989
|
+
font-size: 0.875em;
|
|
990
|
+
background-color: #0d0c0b;
|
|
991
|
+
color: #a3c986;
|
|
992
|
+
padding: 0.125rem 0.4rem;
|
|
993
|
+
border-radius: 4px;
|
|
994
|
+
display: inline;
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
/* Block code — terminal command style, no extra classes needed */
|
|
998
|
+
code.block {
|
|
999
|
+
display: block;
|
|
1000
|
+
padding: 0.625rem 1rem;
|
|
1001
|
+
border-radius: 6px;
|
|
1002
|
+
font-size: 0.8125rem;
|
|
1003
|
+
line-height: 1.6;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
/* Pre — wraps multi-line code, consistent terminal look */
|
|
987
1007
|
pre {
|
|
988
|
-
background-color: #
|
|
989
|
-
color: #
|
|
1008
|
+
background-color: #0d0c0b;
|
|
1009
|
+
color: #e4e0db;
|
|
990
1010
|
padding: 1.25rem;
|
|
991
|
-
border-radius:
|
|
1011
|
+
border-radius: 6px;
|
|
992
1012
|
overflow-x: auto;
|
|
993
1013
|
font-family: "Menlo", "Monaco", "Courier New", monospace;
|
|
994
1014
|
font-size: 0.875rem;
|
|
995
1015
|
line-height: 1.7;
|
|
996
|
-
border: 1px solid #
|
|
1016
|
+
border: 1px solid #2a2520;
|
|
997
1017
|
}
|
|
998
1018
|
|
|
1019
|
+
/* Reset code inside pre — inherits pre's colours */
|
|
999
1020
|
pre code {
|
|
1000
1021
|
background: none;
|
|
1001
1022
|
padding: 0;
|
|
@@ -1003,16 +1024,7 @@ function buildFullFramework() {
|
|
|
1003
1024
|
color: inherit;
|
|
1004
1025
|
font-size: inherit;
|
|
1005
1026
|
font-family: inherit;
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
/* Inline code */
|
|
1009
|
-
code {
|
|
1010
|
-
font-family: "Menlo", "Monaco", "Courier New", monospace;
|
|
1011
|
-
font-size: 0.875em;
|
|
1012
|
-
background-color: #2d2d2d;
|
|
1013
|
-
color: #d4d4d4;
|
|
1014
|
-
padding: 0.125rem 0.375rem;
|
|
1015
|
-
border-radius: 4px;
|
|
1027
|
+
display: inline;
|
|
1016
1028
|
}
|
|
1017
1029
|
${bodyFont}`;
|
|
1018
1030
|
|
|
@@ -1150,4 +1162,4 @@ module.exports = {
|
|
|
1150
1162
|
addResponsiveVariants,
|
|
1151
1163
|
generateFontCSS,
|
|
1152
1164
|
codeUtilities,
|
|
1153
|
-
};
|
|
1165
|
+
};
|