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,210 @@
1
+ @use "sass:math";
2
+
3
+ @use "media-queries";
4
+ @use "variables";
5
+
6
+ /* =Grid
7
+ -----------------------------------------------------------------------------*/
8
+ .units-container {
9
+ margin: auto;
10
+ max-width: variables.$grid-width * 1px;
11
+ overflow-x: clip;
12
+ padding: variables.$padding;
13
+ position: relative;
14
+ width: 100%;
15
+
16
+ &.fill-width {
17
+ max-width: 100%;
18
+ }
19
+ }
20
+
21
+ .units-row {
22
+ box-sizing: border-box;
23
+ display: flex;
24
+ flex: 0 1 auto;
25
+ flex-flow: row wrap;
26
+ margin: 0 (-(variables.$grid-gutter-width)) variables.$base-line;
27
+
28
+ &.reverse-direction,
29
+ &.right-to-left {
30
+ flex-direction: row-reverse;
31
+ }
32
+
33
+ &.split {
34
+ margin: 0 0 variables.$base-line;
35
+
36
+ [class*='unit-'] {
37
+ padding: 0;
38
+ }
39
+ }
40
+
41
+ &.centered-content {
42
+ justify-content: center;
43
+ text-align: center;
44
+ }
45
+
46
+ &.stacked {
47
+ margin-bottom: 0;
48
+ }
49
+
50
+ &.equal-height {
51
+ [class*='unit-'] {
52
+ display: flex;
53
+
54
+ > * {
55
+ width: 100%;
56
+ }
57
+ }
58
+ }
59
+
60
+ &.unit-role-right {
61
+ float: right;
62
+ margin-left: math.div(variables.$grid-gutter-width, (variables.$grid-width * 0.01)) * .01;
63
+ }
64
+
65
+ &.unit-role-left {
66
+ margin-left: 0;
67
+ }
68
+
69
+ &:last-child {
70
+ margin-bottom: 0;
71
+ }
72
+ }
73
+
74
+ [class*='unit-'] {
75
+ box-sizing: border-box;
76
+
77
+ padding: 0 variables.$grid-gutter-width;
78
+
79
+ &.fill-height {
80
+ display: flex;
81
+ }
82
+ }
83
+
84
+ // Base units
85
+ .unit-auto {
86
+ flex-basis: 0;
87
+ flex-grow: 1;
88
+ }
89
+
90
+ @each $name, $value in variables.$unit-scale {
91
+ .unit-#{$name} {
92
+ flex-basis: $value;
93
+ max-width: $value;
94
+ }
95
+ }
96
+
97
+ // Forever units
98
+ .forever-unit-auto {
99
+ flex-basis: 0;
100
+ flex-grow: 1;
101
+ }
102
+
103
+ @each $name, $value in variables.$unit-scale {
104
+ .forever-unit-#{$name} {
105
+ flex-basis: $value;
106
+ max-width: $value;
107
+ }
108
+ }
109
+
110
+ // Large screen (min-width)
111
+ @media (min-width: media-queries.$breakpoint-large-screen) {
112
+ @each $name, $value in variables.$width-scale {
113
+ @if $name != 100 {
114
+ .large-screen-unit-#{$name} {
115
+ max-width: $value;
116
+ flex-basis: $value;
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ // X-large screen (min-width)
123
+ @media (min-width: media-queries.$breakpoint-x-large-screen) {
124
+ @each $name, $value in variables.$width-scale {
125
+ @if $name != 100 {
126
+ .x-large-screen-unit-#{$name} {
127
+ max-width: $value;
128
+ flex-basis: $value;
129
+ }
130
+ }
131
+ }
132
+ }
133
+
134
+ // Small desktop (max-width)
135
+ @media (max-width: media-queries.$breakpoint-small-desktop) {
136
+ @each $name, $value in variables.$width-scale {
137
+ .small-desktop-unit-#{$name} {
138
+ max-width: $value;
139
+ flex-basis: $value;
140
+ }
141
+ }
142
+ }
143
+
144
+ // Tablet (max-width) — reset base units to 100% first
145
+ @media (max-width: media-queries.$breakpoint-tablet) {
146
+ .unit-auto,
147
+ .unit-100,
148
+ .unit-90,
149
+ .unit-80,
150
+ .unit-75,
151
+ .unit-70,
152
+ .unit-66,
153
+ .unit-65,
154
+ .unit-60,
155
+ .unit-50,
156
+ .unit-40,
157
+ .unit-35,
158
+ .unit-33,
159
+ .unit-30,
160
+ .unit-25,
161
+ .unit-20,
162
+ .unit-10 {
163
+ flex-basis: 100%;
164
+ max-width: 100%;
165
+ }
166
+
167
+ @each $name, $value in variables.$width-scale {
168
+ .tablet-unit-#{$name} {
169
+ max-width: $value;
170
+ flex-basis: $value;
171
+ }
172
+ }
173
+ }
174
+
175
+ // Large phone (max-width)
176
+ @media (max-width: media-queries.$breakpoint-large-phone) {
177
+ @each $name, $value in variables.$width-scale {
178
+ .large-phone-unit-#{$name} {
179
+ max-width: $value;
180
+ flex-basis: $value;
181
+ }
182
+ }
183
+ }
184
+
185
+ // Phone (max-width)
186
+ @media (max-width: media-queries.$breakpoint-phone) {
187
+ @each $name, $value in variables.$width-scale {
188
+ .phone-unit-#{$name} {
189
+ max-width: $value;
190
+ flex-basis: $value;
191
+ }
192
+ }
193
+ }
194
+
195
+ // Push units
196
+ $push-scale: (
197
+ 90: 90%, 80: 80%, 75: 75%, 70: 70%,
198
+ 66: 66.6%, 65: 65%, 60: 60%, 50: 50%, 40: 40%,
199
+ 35: 35%, 33: 33.3%, 30: 30%, 25: 25%, 20: 20%, 10: 10%
200
+ );
201
+
202
+ @each $name, $value in $push-scale {
203
+ .unit-push-#{$name} { margin-left: $value; }
204
+ }
205
+
206
+ .centered,
207
+ .unit-centered {
208
+ float: none !important;
209
+ margin: 0 auto variables.$base-line;
210
+ }
@@ -0,0 +1,357 @@
1
+ @use 'cursors';
2
+ @use "colors";
3
+ @use "mixins";
4
+ @use "variables";
5
+
6
+ /* =Helpers (Core)
7
+ -----------------------------------------------------------------------------*/
8
+
9
+ // Layout Helpers
10
+ // Positioning
11
+
12
+ .full-screen {
13
+ @include mixins.square;
14
+
15
+ position: relative;
16
+ }
17
+
18
+ .fixed {
19
+ position: fixed;
20
+ }
21
+
22
+ .absolute {
23
+ position: absolute;
24
+ }
25
+
26
+ .relative {
27
+ position: relative;
28
+ }
29
+
30
+ .static {
31
+ position: static;
32
+ }
33
+
34
+ .sticky {
35
+ position: sticky;
36
+ }
37
+
38
+ // Display
39
+
40
+ .display-flex {
41
+ display: flex;
42
+ }
43
+
44
+ .display-block {
45
+ display: block;
46
+ }
47
+
48
+ .display-inline-block {
49
+ display: inline-block;
50
+ }
51
+
52
+ .display-grid {
53
+ display: grid;
54
+ }
55
+
56
+ .display-none {
57
+ display: none;
58
+ }
59
+
60
+ // Spacing
61
+
62
+ .last {
63
+ margin-right: 0 !important;
64
+ }
65
+
66
+ .pause {
67
+ margin-bottom: variables.$base-line * 0.5 !important;
68
+ }
69
+
70
+ .end {
71
+ margin-bottom: 0 !important;
72
+ }
73
+
74
+ .margin {
75
+ margin: var(--ply-space-md, 0.75rem);
76
+ }
77
+
78
+ .margin-top {
79
+ margin-top: var(--ply-space-md, 0.75rem);
80
+ }
81
+
82
+ .margin-top-extra {
83
+ margin-top: var(--ply-space-lg, 1.5rem);
84
+ }
85
+
86
+ .margin-right {
87
+ margin-right: var(--ply-space-md, 0.75rem);
88
+ }
89
+
90
+ .margin-bottom {
91
+ margin-bottom: var(--ply-space-md, 0.75rem);
92
+ }
93
+
94
+ .margin-bottom-extra {
95
+ margin-bottom: var(--ply-space-lg, 1.5rem);
96
+ }
97
+
98
+ .margin-left {
99
+ margin-left: var(--ply-space-md, 0.75rem);
100
+ }
101
+
102
+ // Margin scale
103
+ .margin-xs { margin: var(--ply-space-xs, 0.25rem); }
104
+ .margin-sm { margin: var(--ply-space-sm, 0.5rem); }
105
+ .margin-lg { margin: var(--ply-space-lg, 1.5rem); }
106
+ .margin-xl { margin: var(--ply-space-xl, 2rem); }
107
+ .margin-xxl { margin: var(--ply-space-xxl, 3rem); }
108
+
109
+ .no-margin {
110
+ margin: 0 !important;
111
+ }
112
+
113
+ .no-top-margin {
114
+ margin-top: 0 !important;
115
+ }
116
+
117
+ .no-bottom-margin {
118
+ margin-bottom: 0 !important;
119
+ }
120
+
121
+ .no-spacing {
122
+ margin: 0 !important;
123
+ padding: 0 !important;
124
+ }
125
+
126
+ .no-padding {
127
+ padding: 0 !important;
128
+ }
129
+
130
+ .padding {
131
+ padding: var(--ply-space-md, 0.75rem);
132
+ }
133
+
134
+ .padding-top {
135
+ padding-top: var(--ply-space-md, 0.75rem);
136
+ }
137
+
138
+ .padding-right {
139
+ padding-right: var(--ply-space-md, 0.75rem);
140
+ }
141
+
142
+ .padding-bottom {
143
+ padding-bottom: var(--ply-space-md, 0.75rem);
144
+ }
145
+
146
+ .padding-left {
147
+ padding-left: var(--ply-space-md, 0.75rem);
148
+ }
149
+
150
+ // Padding scale
151
+ .padding-xs { padding: var(--ply-space-xs, 0.25rem); }
152
+ .padding-sm { padding: var(--ply-space-sm, 0.5rem); }
153
+ .padding-lg { padding: var(--ply-space-lg, 1.5rem); }
154
+ .padding-xl { padding: var(--ply-space-xl, 2rem); }
155
+ .padding-xxl { padding: var(--ply-space-xxl, 3rem); }
156
+
157
+ // Borders
158
+
159
+ .border-top {
160
+ border-top: 1px solid var(--ply-border-color, colors.$border-color);
161
+ }
162
+
163
+ .border-bottom {
164
+ border-bottom: 1px solid var(--ply-border-color, colors.$border-color);
165
+ }
166
+
167
+ .border {
168
+ border: 1px solid var(--ply-border-color, colors.$border-color);
169
+ }
170
+
171
+ .no-border {
172
+ border: 0 none !important;
173
+ }
174
+
175
+ // Width (base only — no responsive variants in core)
176
+
177
+ @each $name, $value in variables.$width-scale {
178
+ .width-#{$name} { width: $value; }
179
+ }
180
+
181
+ // UI Helpers
182
+
183
+ .group,
184
+ .clearfix {
185
+ @include mixins.clearfix;
186
+ }
187
+
188
+ .hide {
189
+ display: none;
190
+ }
191
+
192
+ .sr-only {
193
+ position: absolute;
194
+ width: 1px;
195
+ height: 1px;
196
+ padding: 0;
197
+ margin: -1px;
198
+ overflow: hidden;
199
+ clip: rect(0, 0, 0, 0);
200
+ white-space: nowrap;
201
+ border: 0;
202
+ }
203
+
204
+ .hide-on-desktop {
205
+ display: none;
206
+ }
207
+
208
+ .flat-list {
209
+ margin-left: 0;
210
+ list-style: none;
211
+ }
212
+
213
+ .border-radius {
214
+ border-radius: variables.$border-radius;
215
+ }
216
+
217
+ // UX Helpers
218
+
219
+ .req,
220
+ .required {
221
+ font-weight: normal;
222
+ color: colors.$color-red;
223
+ }
224
+
225
+ .error {
226
+ color: colors.$color-red;
227
+ }
228
+
229
+ .success {
230
+ color: colors.$color-green;
231
+ }
232
+
233
+ // Typography — Size Utilities
234
+
235
+ .text-xs {
236
+ font-size: variables.$font-size-xs;
237
+ line-height: variables.$line-height-xs;
238
+ }
239
+
240
+ .text-sm {
241
+ font-size: variables.$font-size-sm;
242
+ line-height: variables.$line-height-sm;
243
+ }
244
+
245
+ .text-base {
246
+ font-size: variables.$font-size-base;
247
+ line-height: variables.$line-height-base;
248
+ }
249
+
250
+ .text-lg {
251
+ font-size: variables.$font-size-lg;
252
+ line-height: variables.$line-height-lg;
253
+ }
254
+
255
+ .text-xl {
256
+ font-size: variables.$font-size-xl;
257
+ line-height: variables.$line-height-xl;
258
+ }
259
+
260
+ .text-2xl {
261
+ font-size: variables.$font-size-2xl;
262
+ line-height: variables.$line-height-2xl;
263
+ }
264
+
265
+ .text-3xl {
266
+ font-size: variables.$font-size-3xl;
267
+ line-height: variables.$line-height-3xl;
268
+ }
269
+
270
+ .text-4xl {
271
+ font-size: variables.$font-size-4xl;
272
+ line-height: variables.$line-height-4xl;
273
+ }
274
+
275
+ .text-5xl {
276
+ font-size: variables.$font-size-5xl;
277
+ line-height: variables.$line-height-5xl;
278
+ }
279
+
280
+ // Typography — Weight Utilities
281
+
282
+ .font-normal { font-weight: variables.$font-weight-normal; }
283
+ .font-medium { font-weight: variables.$font-weight-medium; }
284
+ .font-semibold { font-weight: variables.$font-weight-semibold; }
285
+ .font-bold { font-weight: variables.$font-weight-bold; }
286
+
287
+ // Typography — Line Height Utilities
288
+
289
+ .leading-tight { line-height: variables.$line-height-tight; }
290
+ .leading-snug { line-height: variables.$line-height-snug; }
291
+ .leading-normal { line-height: variables.$line-height-normal; }
292
+ .leading-relaxed { line-height: variables.$line-height-relaxed; }
293
+
294
+ // Typography — Legacy
295
+
296
+ .bold {
297
+ font-weight: bold !important;
298
+ }
299
+
300
+ .italic {
301
+ font-style: italic;
302
+ }
303
+
304
+ .uppercase {
305
+ text-transform: uppercase;
306
+ }
307
+
308
+ .nowrap,
309
+ .nowrap td {
310
+ white-space: nowrap;
311
+ }
312
+
313
+ .text-center {
314
+ text-align: center;
315
+ }
316
+
317
+ .text-right {
318
+ text-align: right;
319
+ }
320
+
321
+ .text-left {
322
+ text-align: left;
323
+ }
324
+
325
+ // Color Helpers
326
+
327
+ .bg-white,
328
+ .bg-surface {
329
+ background-color: var(--ply-bg-surface);
330
+ }
331
+
332
+ .bg-black {
333
+ background-color: colors.$color-black;
334
+ }
335
+
336
+ .color-black {
337
+ color: colors.$color-black;
338
+ }
339
+
340
+ .color-white {
341
+ color: colors.$color-white;
342
+ }
343
+
344
+ /* =Responsive
345
+ -----------------------------------------------------------------------------*/
346
+ @media only screen and (max-width: 767px) {
347
+ .left,
348
+ .right {
349
+ float: none;
350
+ }
351
+ .hide-on-mobile {
352
+ display: none;
353
+ }
354
+ .hide-on-desktop {
355
+ display: block;
356
+ }
357
+ }