ply-css 1.3.0

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.
Files changed (75) hide show
  1. package/CLAUDE.md +176 -0
  2. package/LICENSE +22 -0
  3. package/PLY.md +646 -0
  4. package/README.md +170 -0
  5. package/dist/css/ply-core.css +6175 -0
  6. package/dist/css/ply-core.min.css +1 -0
  7. package/dist/css/ply-essentials.min.css +1 -0
  8. package/dist/css/ply-helpers.min.css +1 -0
  9. package/dist/css/ply.css +7429 -0
  10. package/dist/css/ply.min.css +1 -0
  11. package/dist/css/styles.css +7432 -0
  12. package/dist/css/styles.min.css +1 -0
  13. package/llms-full.txt +834 -0
  14. package/llms.txt +34 -0
  15. package/package.json +70 -0
  16. package/ply-classes.json +2625 -0
  17. package/snippets/accessible-drag-and-drop.html +122 -0
  18. package/snippets/card.html +58 -0
  19. package/snippets/contact-form.html +49 -0
  20. package/snippets/custom-theme.html +280 -0
  21. package/snippets/dashboard.html +77 -0
  22. package/snippets/data-table.html +64 -0
  23. package/snippets/login-page.html +45 -0
  24. package/snippets/navbar-page.html +39 -0
  25. package/snippets/notifications.html +63 -0
  26. package/snippets/pricing-cards.html +95 -0
  27. package/snippets/responsive-header.html +98 -0
  28. package/snippets/starter-page.html +782 -0
  29. package/snippets/two-column-layout.html +40 -0
  30. package/src/scss/_ply-core-components.scss +32 -0
  31. package/src/scss/_ply.scss +47 -0
  32. package/src/scss/components/_accordion.scss +73 -0
  33. package/src/scss/components/_alignments.scss +64 -0
  34. package/src/scss/components/_autocomplete.scss +28 -0
  35. package/src/scss/components/_blocks-responsive.scss +30 -0
  36. package/src/scss/components/_blocks.scss +39 -0
  37. package/src/scss/components/_buttons.scss +452 -0
  38. package/src/scss/components/_colors.scss +447 -0
  39. package/src/scss/components/_container-queries.scss +35 -0
  40. package/src/scss/components/_cursors.scss +24 -0
  41. package/src/scss/components/_dialog-patterns.scss +176 -0
  42. package/src/scss/components/_dropdown.scss +68 -0
  43. package/src/scss/components/_filterbox.scss +57 -0
  44. package/src/scss/components/_flexible-embed.scss +19 -0
  45. package/src/scss/components/_forms.scss +450 -0
  46. package/src/scss/components/_grid.scss +210 -0
  47. package/src/scss/components/_helpers-core.scss +357 -0
  48. package/src/scss/components/_helpers.scss +466 -0
  49. package/src/scss/components/_labels.scss +105 -0
  50. package/src/scss/components/_livesearch.scss +233 -0
  51. package/src/scss/components/_loader.scss +24 -0
  52. package/src/scss/components/_media-queries.scss +9 -0
  53. package/src/scss/components/_mixins.scss +387 -0
  54. package/src/scss/components/_modal.scss +73 -0
  55. package/src/scss/components/_multi-step-form.scss +190 -0
  56. package/src/scss/components/_navigation-responsive.scss +63 -0
  57. package/src/scss/components/_navigation.scss +592 -0
  58. package/src/scss/components/_notifications.scss +185 -0
  59. package/src/scss/components/_prettyprint.scss +86 -0
  60. package/src/scss/components/_print.scss +74 -0
  61. package/src/scss/components/_progress.scss +32 -0
  62. package/src/scss/components/_reset.scss +365 -0
  63. package/src/scss/components/_rtl.scss +213 -0
  64. package/src/scss/components/_table-interactive.scss +110 -0
  65. package/src/scss/components/_tables.scss +52 -0
  66. package/src/scss/components/_themes.scss +6 -0
  67. package/src/scss/components/_tooltip.scss +35 -0
  68. package/src/scss/components/_typography.scss +565 -0
  69. package/src/scss/components/_upload.scss +19 -0
  70. package/src/scss/components/_variables.scss +129 -0
  71. package/src/scss/ply-core.scss +1 -0
  72. package/src/scss/ply-essentials.scss +15 -0
  73. package/src/scss/ply-helpers.scss +11 -0
  74. package/src/scss/ply-iso.scss +1 -0
  75. package/src/scss/styles.scss +9 -0
@@ -0,0 +1,466 @@
1
+ @use 'helpers-core';
2
+ @use "colors";
3
+ @use "media-queries";
4
+ @use "mixins";
5
+ @use "variables";
6
+
7
+ /* =Helpers (Extended)
8
+ -----------------------------------------------------------------------------*/
9
+
10
+ // Display (extended)
11
+
12
+ .flex-wrap {
13
+ flex-wrap: wrap;
14
+ }
15
+
16
+ .display-table {
17
+ display: table;
18
+ }
19
+
20
+ .display-inline-table {
21
+ display: inline-table;
22
+ }
23
+
24
+ .display-table-cell {
25
+ display: table-cell;
26
+ }
27
+
28
+ .display-list-item {
29
+ display: list-item;
30
+ }
31
+
32
+ .display-inline-grid {
33
+ display: inline-grid;
34
+ }
35
+
36
+ .display-subgrid {
37
+ display: subgrid;
38
+ }
39
+
40
+ // Flex alignment
41
+
42
+ .items-center {
43
+ align-items: center;
44
+ }
45
+
46
+ .items-start {
47
+ align-items: flex-start;
48
+ }
49
+
50
+ .items-end {
51
+ align-items: flex-end;
52
+ }
53
+
54
+ .items-stretch {
55
+ align-items: stretch;
56
+ }
57
+
58
+ .items-baseline {
59
+ align-items: baseline;
60
+ }
61
+
62
+ .justify-start {
63
+ justify-content: flex-start;
64
+ }
65
+
66
+ .justify-end {
67
+ justify-content: flex-end;
68
+ }
69
+
70
+ .justify-between {
71
+ justify-content: space-between;
72
+ }
73
+
74
+ .justify-around {
75
+ justify-content: space-around;
76
+ }
77
+
78
+ // Spacing (extended — directional extras + auto)
79
+
80
+ .margin-right-extra {
81
+ margin-right: var(--ply-space-lg, 1.5rem);
82
+ }
83
+
84
+ .margin-left-auto {
85
+ margin-left: auto;
86
+ }
87
+
88
+ .margin-left-extra {
89
+ margin-left: var(--ply-space-lg, 1.5rem);
90
+ }
91
+
92
+ // Directional margin scale
93
+ .margin-top-xs { margin-top: var(--ply-space-xs, 0.25rem); }
94
+ .margin-top-sm { margin-top: var(--ply-space-sm, 0.5rem); }
95
+ .margin-top-lg { margin-top: var(--ply-space-lg, 1.5rem); }
96
+ .margin-top-xl { margin-top: var(--ply-space-xl, 2rem); }
97
+ .margin-top-xxl { margin-top: var(--ply-space-xxl, 3rem); }
98
+
99
+ .margin-right-xs { margin-right: var(--ply-space-xs, 0.25rem); }
100
+ .margin-right-sm { margin-right: var(--ply-space-sm, 0.5rem); }
101
+ .margin-right-lg { margin-right: var(--ply-space-lg, 1.5rem); }
102
+ .margin-right-xl { margin-right: var(--ply-space-xl, 2rem); }
103
+ .margin-right-xxl { margin-right: var(--ply-space-xxl, 3rem); }
104
+
105
+ .margin-bottom-xs { margin-bottom: var(--ply-space-xs, 0.25rem); }
106
+ .margin-bottom-sm { margin-bottom: var(--ply-space-sm, 0.5rem); }
107
+ .margin-bottom-lg { margin-bottom: var(--ply-space-lg, 1.5rem); }
108
+ .margin-bottom-xl { margin-bottom: var(--ply-space-xl, 2rem); }
109
+ .margin-bottom-xxl { margin-bottom: var(--ply-space-xxl, 3rem); }
110
+
111
+ .margin-left-xs { margin-left: var(--ply-space-xs, 0.25rem); }
112
+ .margin-left-sm { margin-left: var(--ply-space-sm, 0.5rem); }
113
+ .margin-left-lg { margin-left: var(--ply-space-lg, 1.5rem); }
114
+ .margin-left-xl { margin-left: var(--ply-space-xl, 2rem); }
115
+ .margin-left-xxl { margin-left: var(--ply-space-xxl, 3rem); }
116
+
117
+ .no-right-margin {
118
+ margin-right: 0 !important;
119
+ }
120
+
121
+ .no-left-margin {
122
+ margin-left: 0 !important;
123
+ }
124
+
125
+ .no-top-padding {
126
+ padding-top: 0 !important;
127
+ }
128
+
129
+ .no-right-padding {
130
+ padding-right: 0 !important;
131
+ }
132
+
133
+ .no-bottom-padding {
134
+ padding-bottom: 0 !important;
135
+ }
136
+
137
+ .no-left-padding {
138
+ padding-left: 0 !important;
139
+ }
140
+
141
+ // Padding (extended — directional extras)
142
+
143
+ .padding-top-extra {
144
+ padding-top: var(--ply-space-lg, 1.5rem);
145
+ }
146
+
147
+ .padding-right-extra {
148
+ padding-right: var(--ply-space-lg, 1.5rem);
149
+ }
150
+
151
+ .padding-bottom-extra {
152
+ padding-bottom: var(--ply-space-lg, 1.5rem);
153
+ }
154
+
155
+ .padding-left-extra {
156
+ padding-left: var(--ply-space-lg, 1.5rem);
157
+ }
158
+
159
+ // Directional padding scale
160
+ .padding-top-xs { padding-top: var(--ply-space-xs, 0.25rem); }
161
+ .padding-top-sm { padding-top: var(--ply-space-sm, 0.5rem); }
162
+ .padding-top-lg { padding-top: var(--ply-space-lg, 1.5rem); }
163
+ .padding-top-xl { padding-top: var(--ply-space-xl, 2rem); }
164
+ .padding-top-xxl { padding-top: var(--ply-space-xxl, 3rem); }
165
+
166
+ .padding-right-xs { padding-right: var(--ply-space-xs, 0.25rem); }
167
+ .padding-right-sm { padding-right: var(--ply-space-sm, 0.5rem); }
168
+ .padding-right-lg { padding-right: var(--ply-space-lg, 1.5rem); }
169
+ .padding-right-xl { padding-right: var(--ply-space-xl, 2rem); }
170
+ .padding-right-xxl { padding-right: var(--ply-space-xxl, 3rem); }
171
+
172
+ .padding-bottom-xs { padding-bottom: var(--ply-space-xs, 0.25rem); }
173
+ .padding-bottom-sm { padding-bottom: var(--ply-space-sm, 0.5rem); }
174
+ .padding-bottom-lg { padding-bottom: var(--ply-space-lg, 1.5rem); }
175
+ .padding-bottom-xl { padding-bottom: var(--ply-space-xl, 2rem); }
176
+ .padding-bottom-xxl{ padding-bottom: var(--ply-space-xxl, 3rem); }
177
+
178
+ .padding-left-xs { padding-left: var(--ply-space-xs, 0.25rem); }
179
+ .padding-left-sm { padding-left: var(--ply-space-sm, 0.5rem); }
180
+ .padding-left-lg { padding-left: var(--ply-space-lg, 1.5rem); }
181
+ .padding-left-xl { padding-left: var(--ply-space-xl, 2rem); }
182
+ .padding-left-xxl { padding-left: var(--ply-space-xxl, 3rem); }
183
+
184
+ // Borders (extended)
185
+
186
+ .border-right {
187
+ border-right: 1px solid var(--ply-border-color, colors.$border-color);
188
+ }
189
+
190
+ .border-left {
191
+ border-left: 1px solid var(--ply-border-color, colors.$border-color);
192
+ }
193
+
194
+ .border-top-thick {
195
+ border-top: 3px solid var(--ply-border-color, colors.$border-color);
196
+ }
197
+
198
+ .border-right-thick {
199
+ border-right: 3px solid var(--ply-border-color, colors.$border-color);
200
+ }
201
+
202
+ .border-bottom-thick {
203
+ border-bottom: 3px solid var(--ply-border-color, colors.$border-color);
204
+ }
205
+
206
+ .border-left-thick {
207
+ border-left: 3px solid var(--ply-border-color, colors.$border-color);
208
+ }
209
+
210
+ .border-thick {
211
+ border: 3px solid var(--ply-border-color, colors.$border-color);
212
+ }
213
+
214
+ .no-border-top {
215
+ border-top: 0 none !important;
216
+ }
217
+
218
+ .no-border-right {
219
+ border-right: 0 none !important;
220
+ }
221
+
222
+ .no-border-bottom {
223
+ border-bottom: 0 none !important;
224
+ }
225
+
226
+ .no-border-left {
227
+ border-left: 0 none !important;
228
+ }
229
+
230
+ // Responsive width variants
231
+
232
+ $width-breakpoints: (
233
+ "small-desktop": media-queries.$breakpoint-small-desktop,
234
+ "tablet": media-queries.$breakpoint-tablet,
235
+ "large-phone": media-queries.$breakpoint-large-phone,
236
+ "phone": media-queries.$breakpoint-phone,
237
+ );
238
+
239
+ @each $bp-name, $bp-value in $width-breakpoints {
240
+ @media (max-width: $bp-value) {
241
+ @each $name, $value in variables.$width-scale {
242
+ .#{$bp-name}-width-#{$name} { width: $value; }
243
+ }
244
+ }
245
+ }
246
+
247
+ @each $name, $value in variables.$width-scale {
248
+ .height-#{$name} { height: $value; }
249
+ }
250
+
251
+ // UI Helpers (extended)
252
+
253
+ .border-box {
254
+ box-sizing: border-box;
255
+ }
256
+
257
+ // Skip link — visible only on focus for keyboard navigation
258
+ .skip-link {
259
+ position: absolute;
260
+ top: -100%;
261
+ left: 0;
262
+ z-index: 1000;
263
+ padding: 0.75rem 1.5rem;
264
+ background: var(--ply-bg-body);
265
+ color: var(--ply-color-link);
266
+ text-decoration: underline;
267
+ font-weight: 600;
268
+
269
+ &:focus {
270
+ top: 0;
271
+ }
272
+ }
273
+
274
+ .circle {
275
+ border-radius: 100%;
276
+ }
277
+
278
+ .border-radius-lg {
279
+ border-radius: 0.75rem;
280
+ }
281
+
282
+ .border-radius-xl {
283
+ border-radius: 1.5rem;
284
+ }
285
+
286
+ // Text color helpers (theme-compatible)
287
+ .text-primary {
288
+ color: var(--ply-color-body);
289
+ }
290
+
291
+ .text-secondary {
292
+ color: var(--ply-color-secondary);
293
+ }
294
+
295
+ .text-tertiary,
296
+ .text-muted {
297
+ color: var(--ply-color-muted);
298
+ }
299
+
300
+ .text-inverse {
301
+ color: var(--ply-color-text-inverse);
302
+ }
303
+
304
+ .text-on-color {
305
+ color: #fff;
306
+ }
307
+
308
+ .no-orphan {
309
+ text-wrap: pretty;
310
+ }
311
+
312
+ .text-balance {
313
+ text-wrap: balance;
314
+ }
315
+
316
+ // Transparent background overlay (theme-aware)
317
+ .bg-glass {
318
+ background: var(--ply-bg-glass, rgba(255, 255, 255, 0.15));
319
+ backdrop-filter: blur(8px);
320
+ -webkit-backdrop-filter: blur(8px);
321
+ }
322
+
323
+ // Accent color utilities (theme-aware)
324
+ .color-accent { color: var(--ply-color-accent); }
325
+ .bg-accent { background-color: var(--ply-color-accent); }
326
+
327
+ // Background color utilities (theme-aware, WCAG AA vs body text)
328
+ .bg-blue { background-color: var(--ply-bg-blue); }
329
+ .bg-red { background-color: var(--ply-bg-red); }
330
+ .bg-green { background-color: var(--ply-bg-green); }
331
+ .bg-yellow { background-color: var(--ply-bg-yellow); }
332
+
333
+ // Gap utilities
334
+ .gap-xs { gap: var(--ply-space-xs, 0.25rem); }
335
+ .gap-sm { gap: var(--ply-space-sm, 0.5rem); }
336
+ .gap { gap: var(--ply-space-md, 0.75rem); }
337
+ .gap-lg { gap: var(--ply-space-lg, 1.5rem); }
338
+ .gap-xl { gap: var(--ply-space-xl, 2rem); }
339
+ .gap-xxl { gap: var(--ply-space-xxl, 3rem); }
340
+
341
+ // Link reset — suppress link styling inside a container
342
+ .no-link-style {
343
+ a {
344
+ color: inherit;
345
+ text-decoration: none;
346
+
347
+ &:hover {
348
+ color: inherit;
349
+ text-decoration: none;
350
+ }
351
+ }
352
+ }
353
+
354
+ .spinning {
355
+ @include mixins.spinning(.75s);
356
+
357
+ display: inline-block;
358
+ }
359
+
360
+ .fade-in {
361
+ @include mixins.fadeIn;
362
+ }
363
+
364
+ .code {
365
+ border: 1px solid colors.$color-gray-light;
366
+ border-radius: variables.$border-radius;
367
+ display: inline-block;
368
+ font-size: .8rem;
369
+ font-family: variables.$font-family-code;
370
+ padding: .05rem .35rem;
371
+ }
372
+
373
+ // Typography (extended)
374
+
375
+ .big {
376
+ font-size: variables.$font-size-big;
377
+ }
378
+
379
+ .small {
380
+ font-size: variables.$font-size-small;
381
+ }
382
+
383
+ .smaller {
384
+ font-size: variables.$font-size-smaller;
385
+ }
386
+
387
+ .highlight {
388
+ background-color: colors.$color-yellow-pastel;
389
+ }
390
+
391
+ .sans {
392
+ font-family: variables.$font-family-base;
393
+ }
394
+
395
+ .serif {
396
+ font-family: variables.$font-family-serif;
397
+ }
398
+
399
+ .mono {
400
+ font-family: variables.$font-family-mono;
401
+ }
402
+
403
+ .hide-text {
404
+ text-indent: -5000px;
405
+ font-size: 0;
406
+ }
407
+
408
+ .normal {
409
+ font-weight: normal;
410
+ }
411
+
412
+ .light {
413
+ font-weight: 300 !important;
414
+ }
415
+
416
+ .medium {
417
+ font-weight: 400 !important;
418
+ }
419
+
420
+ // Layer / Elevation Helpers
421
+
422
+ .layer-0 {
423
+ background-color: var(--ply-layer-0);
424
+ }
425
+
426
+ .layer-1 {
427
+ background-color: var(--ply-layer-1);
428
+ box-shadow: var(--ply-shadow-1);
429
+ }
430
+
431
+ .layer-2 {
432
+ background-color: var(--ply-layer-2);
433
+ box-shadow: var(--ply-shadow-2);
434
+ }
435
+
436
+ .layer-3 {
437
+ background-color: var(--ply-layer-3);
438
+ box-shadow: var(--ply-shadow-3);
439
+ }
440
+
441
+ .shadow-1 {
442
+ box-shadow: var(--ply-shadow-1);
443
+ }
444
+
445
+ .shadow-2 {
446
+ box-shadow: var(--ply-shadow-2);
447
+ }
448
+
449
+ .shadow-3 {
450
+ box-shadow: var(--ply-shadow-3);
451
+ }
452
+
453
+ // Opacity scales
454
+
455
+ $opacity-scale: (10: .1, 20: .2, 30: .3, 40: .4, 50: .5, 60: .6, 70: .7, 80: .8, 90: .9);
456
+
457
+ @each $name, $value in $opacity-scale {
458
+ .color-gray-#{$name} { color: rgba(0, 0, 0, $value); }
459
+ .color-white-#{$name} { color: rgba(255, 255, 255, $value); }
460
+ }
461
+
462
+ // Brand text colors (theme-aware)
463
+ .color-blue { color: var(--ply-blue-1); }
464
+ .color-red { color: var(--ply-red-1); }
465
+ .color-green { color: var(--ply-green-1); }
466
+ .color-yellow { color: var(--ply-yellow-1); }
@@ -0,0 +1,105 @@
1
+ @use "colors";
2
+ @use "variables";
3
+
4
+ /* =Labels
5
+ -----------------------------------------------------------------------------*/
6
+ .label,
7
+ .badge {
8
+ background: var(--ply-bg-muted, colors.$color-gray);
9
+ font-size: variables.$font-size-small;
10
+ display: inline-block;
11
+ line-height: 1;
12
+ padding: 4px 7px 3px 7px;
13
+ color: var(--ply-color-body, colors.$color-black);
14
+ text-align: center;
15
+ font-weight: normal;
16
+ text-transform: uppercase;
17
+ }
18
+ .label-outline {
19
+ background: none;
20
+ border: 1px solid var(--ply-color-body, colors.$color-black);
21
+ padding: 3px 6px 2px 6px;
22
+ }
23
+ .badge {
24
+ border-radius: 15px;
25
+ }
26
+ .badge-small {
27
+ font-size: variables.$font-size-smaller;
28
+ padding: 3px 5px;
29
+ }
30
+ .label-black,
31
+ .label-blue,
32
+ .label-red,
33
+ .label-green,
34
+ .badge-black,
35
+ .badge-blue,
36
+ .badge-red,
37
+ .badge-green {
38
+ color: colors.$color-white;
39
+ }
40
+ .label-black,
41
+ .badge-black {
42
+ background: colors.$color-black;
43
+ }
44
+ .label-blue,
45
+ .badge-blue {
46
+ background: colors.$color-blue;
47
+ }
48
+ .label-red,
49
+ .badge-red {
50
+ background: colors.$color-red;
51
+ }
52
+ .label-green,
53
+ .badge-green {
54
+ background: colors.$color-green;
55
+ }
56
+ .label-yellow,
57
+ .badge-yellow {
58
+ background: colors.$color-yellow;
59
+ }
60
+ .label-white,
61
+ .badge-white {
62
+ background: colors.$color-white;
63
+ color: var(--ply-color-text-inverse, #161616);
64
+ }
65
+ .label-black,
66
+ .label-blue,
67
+ .label-red,
68
+ .label-green,
69
+ .label-yellow,
70
+ .label-white {
71
+ &.label-outline {
72
+ background: none;
73
+ color: var(--ply-color-body, colors.$color-black);
74
+ }
75
+ }
76
+ .label-blue {
77
+ &.label-outline {
78
+ border-color: colors.$color-blue;
79
+ color: colors.$color-blue;
80
+ }
81
+ }
82
+ .label-red {
83
+ &.label-outline {
84
+ border-color: colors.$color-red;
85
+ color: colors.$color-red;
86
+ }
87
+ }
88
+ .label-green {
89
+ &.label-outline {
90
+ border-color: colors.$color-green;
91
+ color: colors.$color-green;
92
+ }
93
+ }
94
+ .label-yellow {
95
+ &.label-outline {
96
+ border-color: colors.$color-yellow;
97
+ color: colors.$color-yellow;
98
+ }
99
+ }
100
+ .label-white {
101
+ &.label-outline {
102
+ border-color: colors.$color-white;
103
+ color: colors.$color-white;
104
+ }
105
+ }