@lottecode/lottecss 0.0.2 → 0.0.4

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/README.md CHANGED
@@ -25,11 +25,11 @@ That's it. Your semantic HTML is now styled.
25
25
 
26
26
  ---
27
27
 
28
- ## For AI Assistants (Claude, etc.)
28
+ ## For AI assistants (Claude, etc.)
29
29
 
30
30
  If you are an AI assistant generating markup for a project that uses lottecss, read this section carefully.
31
31
 
32
- ### The Core Rule
32
+ ### The core rule
33
33
 
34
34
  **Do not style anything.** lottecss does it for you. Your job is to write correct, semantic HTML.
35
35
 
@@ -42,7 +42,7 @@ If you are an AI assistant generating markup for a project that uses lottecss, r
42
42
  - Use `.card` class for card-like containers
43
43
  - Use basic Tailwind utilities (`flex`, `grid`, `gap-*`, `p-*`, `m-*`) for layout only
44
44
 
45
- ### Do Not
45
+ ### Do not
46
46
 
47
47
  - Add `style=""` attributes to any element
48
48
  - Add visual classes (`text-xl`, `text-blue-500`, `font-bold`, `bg-gray-100`, etc.)
@@ -87,13 +87,13 @@ If you are an AI assistant generating markup for a project that uses lottecss, r
87
87
  <div class="card-header">Not a real element</div>
88
88
  ```
89
89
 
90
- ### If Something Looks Wrong
90
+ ### If something looks wrong
91
91
 
92
92
  Choose a different semantic element — don't add styling. The element you picked is probably wrong for that context.
93
93
 
94
94
  ---
95
95
 
96
- ## What lottecss Styles
96
+ ## What lottecss styles
97
97
 
98
98
  | Module | What it covers |
99
99
  |---|---|
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@lottecode/lottecss",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "out of the box design and styling for your semantic markup",
5
5
  "type": "module",
6
6
  "main": "styles.css",
7
7
  "style": "styles.css",
8
8
  "files": [
9
9
  "styles.css",
10
- "src/css"
10
+ "src/css/**"
11
11
  ],
12
12
  "exports": {
13
13
  "./styles.css": "./styles.css"
@@ -0,0 +1,73 @@
1
+ .AccordionRoot {
2
+ border: 1px solid var(--color-border);
3
+ }
4
+ .AccordionItem {
5
+ border-bottom: 1px solid var(--color-border);
6
+ overflow: hidden;
7
+ }
8
+ .AccordionItem h2 {
9
+ font-size: 0.825rem;
10
+ font-weight: 600;
11
+ padding-bottom: 0.5rem;
12
+ }
13
+ .AccordionItem p + h2 {
14
+ padding-top: 1rem;
15
+ }
16
+ .AccordionItem p + p {
17
+ padding-top: 1rem;
18
+ }
19
+ .AccordionItem:focus-within {
20
+ position: relative;
21
+ z-index: 1;
22
+ }
23
+ .AccordionHeader {
24
+ display: flex;
25
+ margin-bottom: 0.25rem;
26
+ }
27
+ .AccordionTrigger {
28
+ display: flex;
29
+ flex: 1;
30
+ align-items: center;
31
+ justify-content: space-between;
32
+ font-weight: 400;
33
+ text-transform: capitalize;
34
+ font-size: 0.825rem;
35
+ padding: 0.5rem;
36
+ }
37
+ .AccordionTrigger:hover {
38
+ border: 1px solid var(--color-foreground);
39
+ }
40
+ .AccordionContentText {
41
+ background-color: var(--color-surface);
42
+ padding: 0.5rem;
43
+ }
44
+ .AccordionContent[data-state="open"] {
45
+ animation: slideDown 300ms cubic-bezier(0.87, 0, 0.13, 1);
46
+ }
47
+ .AccordionContent[data-state="closed"] {
48
+ animation: slideUp 300ms cubic-bezier(0.87, 0, 0.13, 1);
49
+ }
50
+ .AccordionChevron {
51
+ transition: transform 300ms cubic-bezier(0.87, 0, 0.13, 1);
52
+ }
53
+ .AccordionTrigger[data-state="open"] > .AccordionChevron {
54
+ transform: rotate(180deg);
55
+ }
56
+
57
+ @keyframes slideDown {
58
+ from {
59
+ height: 0;
60
+ }
61
+ to {
62
+ height: var(--radix-accordion-content-height);
63
+ }
64
+ }
65
+
66
+ @keyframes slideUp {
67
+ from {
68
+ height: var(--radix-accordion-content-height);
69
+ }
70
+ to {
71
+ height: 0;
72
+ }
73
+ }
@@ -0,0 +1,53 @@
1
+ body {
2
+ & button,
3
+ & input[type="button"],
4
+ & button[type="submit"] {
5
+ display: inline-block;
6
+ font-weight: 400;
7
+ text-align: center;
8
+ white-space: nowrap;
9
+ vertical-align: middle;
10
+ user-select: none;
11
+ padding: 0.55rem 1.5rem;
12
+ line-height: 1.5;
13
+ border-radius: 2rem;
14
+ transition:
15
+ color 0.15s ease-in-out,
16
+ background-color 0.15s ease-in-out,
17
+ border-color 0.15s ease-in-out;
18
+ cursor: pointer;
19
+ }
20
+
21
+ & button,
22
+ & input[type="button"],
23
+ & button[type="submit"] {
24
+ color: var(--color-background);
25
+ background-color: var(--color-foreground);
26
+ }
27
+
28
+ & button:hover,
29
+ & input[type="button"]:hover,
30
+ & button[type="submit"]:hover {
31
+ color: var(--color-foreground);
32
+ background-color: var(--color-highlight);
33
+ }
34
+
35
+ /* Clerk button overrides */
36
+ & .cl-formButtonPrimary,
37
+ & .cl-formButtonPrimary span {
38
+ color: white !important;
39
+ border-radius: 2rem !important;
40
+ }
41
+
42
+ & [class*="cl-"] * {
43
+ margin-bottom: 0 !important;
44
+ }
45
+
46
+ /* Disabled state */
47
+
48
+ & button:disabled,
49
+ & input:disabled {
50
+ opacity: 0.65;
51
+ cursor: not-allowed;
52
+ }
53
+ }
@@ -0,0 +1,12 @@
1
+ .card {
2
+ background-color: var(--color-background);
3
+ border: 1px solid var(--color-border);
4
+ padding: 1rem;
5
+ transition: all 0.2s ease;
6
+ }
7
+
8
+ .card:hover {
9
+ /*background-color: var(--color-surface);*/
10
+ /*transform: translateY(-2px);*/
11
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
12
+ }
@@ -0,0 +1,124 @@
1
+ /* Colors Styles */
2
+
3
+ :root {
4
+ --color-background: #fffcf1;
5
+ --color-foreground: #121212;
6
+ --color-surface: #fff;
7
+ --color-border: #121212;
8
+ --color-accent: #0c0;
9
+ --color-highlight: #fceaf5;
10
+ --color-info: #79bce8;
11
+ --color-success: #59c07d;
12
+ --color-warning: #ffd24d;
13
+ --color-error: #f26c6c;
14
+ --color-sage: #c8d9d1;
15
+ }
16
+
17
+ .theme-dark {
18
+ --color-background: #121212;
19
+ --color-foreground: #f5f5f5;
20
+ --color-surface: #130f40;
21
+ --color-border: #e0bcd3;
22
+ --color-accent: #fceaf5;
23
+ --color-highlight: #94e59c;
24
+ --color-info: #3d87b5;
25
+ --color-success: #2e8c51;
26
+ --color-warning: #d9a305;
27
+ --color-error: #c13d3d;
28
+ --color-sage: #c8d9d1;
29
+ }
30
+
31
+ /* Opacity/Transparency */
32
+ .opacity-100 {
33
+ opacity: 1;
34
+ }
35
+
36
+ .opacity-80 {
37
+ opacity: 0.8;
38
+ }
39
+
40
+ .opacity-60 {
41
+ opacity: 0.6;
42
+ }
43
+
44
+ .opacity-40 {
45
+ opacity: 0.4;
46
+ }
47
+
48
+ .opacity-20 {
49
+ opacity: 0.2;
50
+ }
51
+
52
+ /* Background Colors */
53
+ .bg-background {
54
+ background-color: var(--color-background);
55
+ }
56
+
57
+ .bg-foreground {
58
+ background-color: var(--color-foreground);
59
+ }
60
+
61
+ .bg-surface {
62
+ background-color: var(--color-surface);
63
+ }
64
+
65
+ .bg-border {
66
+ background-color: var(--color-border);
67
+ }
68
+
69
+ .bg-accent {
70
+ background-color: var(--color-accent);
71
+ }
72
+
73
+ .bg-info {
74
+ background-color: var(--color-info);
75
+ }
76
+
77
+ .bg-success {
78
+ background-color: var(--color-success);
79
+ }
80
+
81
+ .bg-warning {
82
+ background-color: var(--color-warning);
83
+ }
84
+
85
+ .bg-error {
86
+ background-color: var(--color-error);
87
+ }
88
+
89
+ /* Text Colors */
90
+ .text-background {
91
+ color: var(--color-background);
92
+ }
93
+
94
+ .text-foreground {
95
+ color: var(--color-foreground);
96
+ }
97
+
98
+ .text-surface {
99
+ color: var(--color-surface);
100
+ }
101
+
102
+ .text-border {
103
+ color: var(--color-border);
104
+ }
105
+
106
+ .text-accent {
107
+ color: var(--color-accent);
108
+ }
109
+
110
+ .text-info {
111
+ color: var(--color-info);
112
+ }
113
+
114
+ .text-success {
115
+ color: var(--color-success);
116
+ }
117
+
118
+ .text-warning {
119
+ color: var(--color-warning);
120
+ }
121
+
122
+ .text-error {
123
+ color: var(--color-error);
124
+ }
@@ -0,0 +1,330 @@
1
+ /* Multi-Column Layout */
2
+
3
+ /* Column Count */
4
+ .columns-1 {
5
+ column-count: 1;
6
+ }
7
+
8
+ .columns-2 {
9
+ column-count: 2;
10
+ }
11
+
12
+ .columns-3 {
13
+ column-count: 3;
14
+ }
15
+
16
+ .columns-4 {
17
+ column-count: 4;
18
+ }
19
+
20
+ .columns-5 {
21
+ column-count: 5;
22
+ }
23
+
24
+ .columns-6 {
25
+ column-count: 6;
26
+ }
27
+
28
+ /* Column Width */
29
+ .columns-xs {
30
+ column-width: 10rem;
31
+ }
32
+
33
+ .columns-sm {
34
+ column-width: 15rem;
35
+ }
36
+
37
+ .columns-md {
38
+ column-width: 20rem;
39
+ }
40
+
41
+ .columns-lg {
42
+ column-width: 25rem;
43
+ }
44
+
45
+ .columns-xl {
46
+ column-width: 30rem;
47
+ }
48
+
49
+ /* Column Gap */
50
+ .column-gap-0 {
51
+ column-gap: 0;
52
+ }
53
+
54
+ .column-gap-1 {
55
+ column-gap: 0.25rem;
56
+ }
57
+
58
+ .column-gap-2 {
59
+ column-gap: 0.5rem;
60
+ }
61
+
62
+ .column-gap-4 {
63
+ column-gap: 1rem;
64
+ }
65
+
66
+ .column-gap-6 {
67
+ column-gap: 1.5rem;
68
+ }
69
+
70
+ .column-gap-8 {
71
+ column-gap: 2rem;
72
+ }
73
+
74
+ /* Column Rule */
75
+ .column-rule {
76
+ column-rule: 1px solid var(--color-border);
77
+ }
78
+
79
+ .column-rule-none {
80
+ column-rule: none;
81
+ }
82
+
83
+ .column-rule-dotted {
84
+ column-rule-style: dotted;
85
+ }
86
+
87
+ .column-rule-dashed {
88
+ column-rule-style: dashed;
89
+ }
90
+
91
+ .column-rule-solid {
92
+ column-rule-style: solid;
93
+ }
94
+
95
+ .column-rule-double {
96
+ column-rule-style: double;
97
+ }
98
+
99
+ /* Column Rule Width */
100
+ .column-rule-1 {
101
+ column-rule-width: 1px;
102
+ }
103
+
104
+ .column-rule-2 {
105
+ column-rule-width: 2px;
106
+ }
107
+
108
+ .column-rule-4 {
109
+ column-rule-width: 4px;
110
+ }
111
+
112
+ /* Column Rule Color - using CSS variables */
113
+ .column-rule-primary {
114
+ column-rule-color: var(--color-primary);
115
+ }
116
+
117
+ .column-rule-secondary {
118
+ column-rule-color: var(--color-secondary);
119
+ }
120
+
121
+ .column-rule-muted {
122
+ column-rule-color: var(--color-muted);
123
+ }
124
+
125
+ /* Column Span */
126
+ .column-span-all {
127
+ column-span: all;
128
+ }
129
+
130
+ .column-span-none {
131
+ column-span: none;
132
+ }
133
+
134
+ /* Column Fill */
135
+ .column-fill-auto {
136
+ column-fill: auto;
137
+ }
138
+
139
+ .column-fill-balance {
140
+ column-fill: balance;
141
+ }
142
+
143
+ /* Break Inside */
144
+ .break-inside-auto {
145
+ break-inside: auto;
146
+ }
147
+
148
+ .break-inside-avoid {
149
+ break-inside: avoid;
150
+ }
151
+
152
+ .break-inside-avoid-column {
153
+ break-inside: avoid-column;
154
+ }
155
+
156
+ /* Break Before */
157
+ .break-before-auto {
158
+ break-before: auto;
159
+ }
160
+
161
+ .break-before-column {
162
+ break-before: column;
163
+ }
164
+
165
+ .break-before-avoid-column {
166
+ break-before: avoid-column;
167
+ }
168
+
169
+ /* Break After */
170
+ .break-after-auto {
171
+ break-after: auto;
172
+ }
173
+
174
+ .break-after-column {
175
+ break-after: column;
176
+ }
177
+
178
+ .break-after-avoid-column {
179
+ break-after: avoid-column;
180
+ }
181
+
182
+ /* Responsive Column Utilities */
183
+ @media (min-width: 640px) {
184
+ .sm\:columns-1 {
185
+ column-count: 1;
186
+ }
187
+ .sm\:columns-2 {
188
+ column-count: 2;
189
+ }
190
+ .sm\:columns-3 {
191
+ column-count: 3;
192
+ }
193
+ .sm\:columns-4 {
194
+ column-count: 4;
195
+ }
196
+ .sm\:columns-5 {
197
+ column-count: 5;
198
+ }
199
+ .sm\:columns-6 {
200
+ column-count: 6;
201
+ }
202
+
203
+ .sm\:columns-xs {
204
+ column-width: 10rem;
205
+ }
206
+ .sm\:columns-sm {
207
+ column-width: 15rem;
208
+ }
209
+ .sm\:columns-md {
210
+ column-width: 20rem;
211
+ }
212
+ .sm\:columns-lg {
213
+ column-width: 25rem;
214
+ }
215
+ .sm\:columns-xl {
216
+ column-width: 30rem;
217
+ }
218
+ }
219
+
220
+ @media (min-width: 768px) {
221
+ .md\:columns-1 {
222
+ column-count: 1;
223
+ }
224
+ .md\:columns-2 {
225
+ column-count: 2;
226
+ }
227
+ .md\:columns-3 {
228
+ column-count: 3;
229
+ }
230
+ .md\:columns-4 {
231
+ column-count: 4;
232
+ }
233
+ .md\:columns-5 {
234
+ column-count: 5;
235
+ }
236
+ .md\:columns-6 {
237
+ column-count: 6;
238
+ }
239
+
240
+ .md\:columns-xs {
241
+ column-width: 10rem;
242
+ }
243
+ .md\:columns-sm {
244
+ column-width: 15rem;
245
+ }
246
+ .md\:columns-md {
247
+ column-width: 20rem;
248
+ }
249
+ .md\:columns-lg {
250
+ column-width: 25rem;
251
+ }
252
+ .md\:columns-xl {
253
+ column-width: 30rem;
254
+ }
255
+
256
+ .md\:column-gap-0 {
257
+ column-gap: 0;
258
+ }
259
+ .md\:column-gap-1 {
260
+ column-gap: 0.25rem;
261
+ }
262
+ .md\:column-gap-2 {
263
+ column-gap: 0.5rem;
264
+ }
265
+ .md\:column-gap-4 {
266
+ column-gap: 1rem;
267
+ }
268
+ .md\:column-gap-6 {
269
+ column-gap: 1.5rem;
270
+ }
271
+ .md\:column-gap-8 {
272
+ column-gap: 2rem;
273
+ }
274
+ }
275
+
276
+ @media (min-width: 1024px) {
277
+ .lg\:columns-1 {
278
+ column-count: 1;
279
+ }
280
+ .lg\:columns-2 {
281
+ column-count: 2;
282
+ }
283
+ .lg\:columns-3 {
284
+ column-count: 3;
285
+ }
286
+ .lg\:columns-4 {
287
+ column-count: 4;
288
+ }
289
+ .lg\:columns-5 {
290
+ column-count: 5;
291
+ }
292
+ .lg\:columns-6 {
293
+ column-count: 6;
294
+ }
295
+
296
+ .lg\:columns-xs {
297
+ column-width: 10rem;
298
+ }
299
+ .lg\:columns-sm {
300
+ column-width: 15rem;
301
+ }
302
+ .lg\:columns-md {
303
+ column-width: 20rem;
304
+ }
305
+ .lg\:columns-lg {
306
+ column-width: 25rem;
307
+ }
308
+ .lg\:columns-xl {
309
+ column-width: 30rem;
310
+ }
311
+
312
+ .lg\:column-gap-0 {
313
+ column-gap: 0;
314
+ }
315
+ .lg\:column-gap-1 {
316
+ column-gap: 0.25rem;
317
+ }
318
+ .lg\:column-gap-2 {
319
+ column-gap: 0.5rem;
320
+ }
321
+ .lg\:column-gap-4 {
322
+ column-gap: 1rem;
323
+ }
324
+ .lg\:column-gap-6 {
325
+ column-gap: 1.5rem;
326
+ }
327
+ .lg\:column-gap-8 {
328
+ column-gap: 2rem;
329
+ }
330
+ }
@@ -0,0 +1,12 @@
1
+ .editorial p,
2
+ .editorial h1,
3
+ .editorial h2,
4
+ .editorial h3,
5
+ .editorial h4,
6
+ .editorial h5,
7
+ .editorial h6,
8
+ .editorial ul,
9
+ .editorial ol,
10
+ .editorial blockquote {
11
+ max-width: 400px;
12
+ }
@@ -0,0 +1,46 @@
1
+ /* Fonts */
2
+
3
+ /* Font Variables */
4
+ :root {
5
+ --font-cdn: "https://assets.lottecode.com";
6
+ --font-family-sans: "Berkeley Mono", monospace;
7
+ --font-family-mono: "Berkeley Mono", monospace;
8
+ }
9
+
10
+ /* Font Utility Classes */
11
+ .font-sans {
12
+ font-family: var(--font-family-sans);
13
+ }
14
+
15
+ .font-mono {
16
+ font-family: var(--font-family-mono);
17
+ }
18
+
19
+ /* Berkeley Mono — https://berkeleygraphics.com/typefaces/berkeley-mono */
20
+ @font-face {
21
+ font-family: "Berkeley Mono";
22
+ src: url("https://assets.lottecode.com/fonts/BerkeleyMono-Regular.ttf") format("truetype");
23
+ font-weight: 400;
24
+ font-style: normal;
25
+ }
26
+
27
+ @font-face {
28
+ font-family: "Berkeley Mono";
29
+ src: url("https://assets.lottecode.com/fonts/BerkeleyMono-Bold.ttf") format("truetype");
30
+ font-weight: 700;
31
+ font-style: normal;
32
+ }
33
+
34
+ @font-face {
35
+ font-family: "Berkeley Mono";
36
+ src: url("https://assets.lottecode.com/fonts/BerkeleyMono-Italic.ttf") format("truetype");
37
+ font-weight: 400;
38
+ font-style: italic;
39
+ }
40
+
41
+ @font-face {
42
+ font-family: "Berkeley Mono";
43
+ src: url("https://assets.lottecode.com/fonts/BerkeleyMono-BoldItalic.ttf") format("truetype");
44
+ font-weight: 700;
45
+ font-style: italic;
46
+ }