ply-css 1.5.0 → 1.6.1
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/CLAUDE.md +4 -1
- package/PLY.md +67 -9
- package/README.md +5 -4
- package/dist/css/ply-core.css +45 -38
- package/dist/css/ply-core.min.css +1 -1
- package/dist/css/ply-essentials.min.css +1 -1
- package/dist/css/ply-helpers.min.css +1 -1
- package/dist/css/ply.css +56 -49
- package/dist/css/ply.min.css +1 -1
- package/dist/css/styles.css +56 -49
- package/dist/css/styles.min.css +1 -1
- package/llms-full.txt +76 -3
- package/llms.txt +2 -2
- package/package.json +1 -1
- package/ply-classes.json +18 -8
- package/snippets/custom-theme.html +3 -0
- package/src/scss/components/_buttons.scss +14 -7
- package/src/scss/components/_colors.scss +3 -2
- package/src/scss/components/_dialog-patterns.scss +1 -1
- package/src/scss/components/_forms.scss +10 -10
- package/src/scss/components/_grid.scss +1 -0
- package/src/scss/components/_helpers-core.scss +1 -1
- package/src/scss/components/_helpers.scss +3 -3
- package/src/scss/components/_livesearch.scss +6 -6
- package/src/scss/components/_navigation.scss +2 -2
- package/src/scss/components/_notifications.scss +2 -2
- package/src/scss/components/_reset.scss +7 -7
- package/src/scss/components/_rtl.scss +4 -4
- package/src/scss/components/_typography.scss +1 -1
package/CLAUDE.md
CHANGED
|
@@ -28,7 +28,7 @@ ply automatically styles semantic HTML elements — `<nav>`, `<table>`, `<code>`
|
|
|
28
28
|
8. **Use semantic HTML first** — ply auto-styles `<code>`, `<pre>`, `<kbd>`, `<blockquote>`, `<mark>`, `<table>`, `<details>`, `<dialog>`, `<nav>`, etc. Use native elements before creating custom classes.
|
|
29
29
|
9. **Only use documented ply classes** — Do NOT invent class names. Search `ply-classes.json` to find the right class. See PLY.md for the full prose reference.
|
|
30
30
|
10. **Dark mode is automatic** — Auto dark mode activates only when no `data-theme` attribute is set on `<html>`. Use `data-theme="dark"` for explicit dark mode, `data-theme="light"` for explicit light mode, or any custom value (e.g., `data-theme="warm"`) for a custom theme without dark-mode interference. Use `var(--ply-*)` custom properties for colors (see `customProperties` in the JSON), never hard-code values that break dark mode.
|
|
31
|
-
11. **Icons** — Use [
|
|
31
|
+
11. **Icons** — Use [Lucide](https://lucide.dev) as the preferred icon library. Any icon library works, but Lucide pairs well with ply's aesthetic. For icon + text buttons, place the icon before or after the label — the button's built-in `inline-flex` layout with `gap: 0.5em` handles alignment automatically. Use `btn-icon` only for icon-only buttons (no visible text).
|
|
32
32
|
12. **Container queries** — Use `container-query` on a parent element and `container-tablet-unit-*`, `container-phone-unit-*`, etc. for component-level responsive behavior (responds to parent width, not viewport). See PLY.md for details.
|
|
33
33
|
|
|
34
34
|
## Custom Themes
|
|
@@ -44,12 +44,15 @@ Create a custom theme by defining a `data-theme` value and overriding `--ply-*`
|
|
|
44
44
|
--ply-color-body: #1a1a1a;
|
|
45
45
|
--ply-color-headings: #78350f;
|
|
46
46
|
--ply-border-color: #fbbf24;
|
|
47
|
+
--ply-border-radius: 0.375rem;
|
|
47
48
|
--ply-color-accent: #b45309;
|
|
48
49
|
--ply-btn-default-bg: #b45309; /* Controls btn-primary + links */
|
|
49
50
|
--ply-btn-default-bg-hover: #92400e;
|
|
50
51
|
--ply-btn-default-bg-active: #7c2d12;
|
|
51
52
|
--ply-btn-secondary-bg: #78350f;
|
|
52
53
|
--ply-btn-border-radius: 0.5rem;
|
|
54
|
+
--ply-btn-font-size: 0.875rem; /* button text size */
|
|
55
|
+
--ply-btn-gap: 0.375rem; /* icon-to-text gap */
|
|
53
56
|
--ply-nav-bg: #fef3c7;
|
|
54
57
|
--ply-nav-border: #f59e0b;
|
|
55
58
|
|
package/PLY.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# PLY — AI-Ready CSS Framework
|
|
2
2
|
|
|
3
|
-
ply is a ratio-based, flexbox CSS framework with dark mode, accessibility defaults, and a small footprint (~21KB gzip full, ~17KB core).
|
|
3
|
+
ply is a ratio-based, flexbox CSS framework with dark mode, accessibility defaults, and a small footprint (~21KB gzip full, ~17KB core). 458 utility classes, 120+ CSS custom properties, 13 auto-styled semantic elements.
|
|
4
4
|
|
|
5
5
|
**Differentiators:** Small bundle, AI-parseable class system, accessible out of the box, dark mode built-in.
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ ply is a ratio-based, flexbox CSS framework with dark mode, accessibility defaul
|
|
|
8
8
|
|
|
9
9
|
**`ply-classes.json`** is the complete searchable reference. Before writing any custom CSS, search it first:
|
|
10
10
|
|
|
11
|
-
- **`classes`** — Every ply class (
|
|
11
|
+
- **`classes`** — Every ply class (458) with category, description, and usage examples. Search here before inventing a class name or writing a custom style.
|
|
12
12
|
- **`customProperties`** — All `--ply-*` CSS variables organized by category (background, text, borders, interactive, forms, code, tables, buttons, navigation, elevation, brand, palette, colorSurfaces, spacing). Each entry includes light and dark mode values. Use these instead of hardcoding colors.
|
|
13
13
|
- **`semanticElements`** — Every HTML element ply auto-styles (`<dialog>`, `<details>`, `<table>`, `<code>`, `<kbd>`, `<mark>`, `<progress>`, `<meter>`, headings, form controls) with styling details and usage tips. Check here before building a custom component.
|
|
14
14
|
|
|
@@ -27,12 +27,15 @@ Create a custom theme by defining a `data-theme` value and overriding `--ply-*`
|
|
|
27
27
|
--ply-color-body: #1a1a1a;
|
|
28
28
|
--ply-color-headings: #78350f;
|
|
29
29
|
--ply-border-color: #fbbf24;
|
|
30
|
+
--ply-border-radius: 0.375rem;
|
|
30
31
|
--ply-color-accent: #b45309;
|
|
31
32
|
--ply-btn-default-bg: #b45309;
|
|
32
33
|
--ply-btn-default-bg-hover: #92400e;
|
|
33
34
|
--ply-btn-default-bg-active: #7c2d12;
|
|
34
35
|
--ply-btn-secondary-bg: #78350f;
|
|
35
36
|
--ply-btn-border-radius: 0.5rem;
|
|
37
|
+
--ply-btn-font-size: 0.875rem; /* button text size — default 1em inherits from context */
|
|
38
|
+
--ply-btn-gap: 0.375rem; /* icon-to-text gap — default 0.5em */
|
|
36
39
|
--ply-nav-bg: #fef3c7;
|
|
37
40
|
--ply-nav-border: #f59e0b;
|
|
38
41
|
|
|
@@ -144,15 +147,16 @@ Note: The CDN approach gives you ply's classes and dark mode, but you won't have
|
|
|
144
147
|
|
|
145
148
|
## Icons
|
|
146
149
|
|
|
147
|
-
ply does not include icons. [
|
|
150
|
+
ply does not include icons. [Lucide](https://lucide.dev) is the recommended icon library — it's lightweight, clean, and pairs well with ply's aesthetic. Any icon library works.
|
|
148
151
|
|
|
149
152
|
```html
|
|
150
|
-
|
|
151
|
-
<script
|
|
153
|
+
<!-- CDN -->
|
|
154
|
+
<script src="https://cdn.jsdelivr.net/npm/lucide@latest/dist/umd/lucide.min.js"></script>
|
|
155
|
+
<script>lucide.createIcons();</script>
|
|
152
156
|
|
|
153
157
|
<!-- Usage -->
|
|
154
|
-
<i data-
|
|
155
|
-
<button class="btn btn-
|
|
158
|
+
<i data-lucide="check"></i> Saved
|
|
159
|
+
<button class="btn btn-primary"><i data-lucide="send"></i> Send</button>
|
|
156
160
|
```
|
|
157
161
|
|
|
158
162
|
## Dark Mode
|
|
@@ -246,7 +250,61 @@ All classes, CSS custom properties, and semantic element styles are documented i
|
|
|
246
250
|
|
|
247
251
|
- **`btn-icon`** — Icon-only button modifier. Equal padding for a square aspect ratio. Always add `aria-label` (no visible text).
|
|
248
252
|
- Combine with `btn-ghost` for toolbar-style icon buttons. Combine with size modifiers (`btn-sm`, `btn-xs`) for smaller icons.
|
|
249
|
-
-
|
|
253
|
+
- **Icon + text buttons** — Place the icon before or after the label text inside a regular `btn`. The button automatically uses `inline-flex` with `align-items: center` and `gap: 0.5em`, so icon and text are vertically centered with consistent spacing. No extra classes needed.
|
|
254
|
+
|
|
255
|
+
```html
|
|
256
|
+
<!-- Icon left -->
|
|
257
|
+
<button class="btn btn-primary">
|
|
258
|
+
<i data-lucide="save"></i> Save
|
|
259
|
+
</button>
|
|
260
|
+
|
|
261
|
+
<!-- Icon right -->
|
|
262
|
+
<button class="btn btn-secondary">
|
|
263
|
+
Next <i data-lucide="arrow-right"></i>
|
|
264
|
+
</button>
|
|
265
|
+
|
|
266
|
+
<!-- Icon-only (always include aria-label) -->
|
|
267
|
+
<button class="btn btn-ghost btn-icon" aria-label="Delete">
|
|
268
|
+
<i data-lucide="trash-2"></i>
|
|
269
|
+
</button>
|
|
270
|
+
|
|
271
|
+
<!-- Size variants work the same way -->
|
|
272
|
+
<button class="btn btn-primary btn-sm">
|
|
273
|
+
<i data-lucide="download"></i> Export
|
|
274
|
+
</button>
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Button Groups
|
|
278
|
+
|
|
279
|
+
Wrap buttons in `.btn-group` for a flex row with consistent gap and connected border-radius on the outer edges.
|
|
280
|
+
|
|
281
|
+
- **`btn-group`** — Default: buttons with `0.5rem` gap between them.
|
|
282
|
+
- **`btn-group joined`** — No gap; buttons connect as a single unit with a 1px divider between them. Use for segmented controls, toolbars, and pagination-style groups.
|
|
283
|
+
- **`align-right`** / **`align-left`** / **`align-center`** — Justify the group within its container.
|
|
284
|
+
- **`fill-width`** — Stretch all buttons to share equal width.
|
|
285
|
+
- **`rounded`** — Larger border-radius on the outer edges.
|
|
286
|
+
|
|
287
|
+
```html
|
|
288
|
+
<!-- Default: gapped -->
|
|
289
|
+
<div class="btn-group">
|
|
290
|
+
<button class="btn btn-primary">Save</button>
|
|
291
|
+
<button class="btn">Cancel</button>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
294
|
+
<!-- Joined: connected, no gap -->
|
|
295
|
+
<div class="btn-group joined">
|
|
296
|
+
<button class="btn">Week</button>
|
|
297
|
+
<button class="btn btn-primary">Month</button>
|
|
298
|
+
<button class="btn">Year</button>
|
|
299
|
+
</div>
|
|
300
|
+
|
|
301
|
+
<!-- Joined icon toolbar -->
|
|
302
|
+
<div class="btn-group joined">
|
|
303
|
+
<button class="btn btn-ghost btn-icon" aria-label="Bold"><i data-lucide="bold"></i></button>
|
|
304
|
+
<button class="btn btn-ghost btn-icon" aria-label="Italic"><i data-lucide="italic"></i></button>
|
|
305
|
+
<button class="btn btn-ghost btn-icon" aria-label="Underline"><i data-lucide="underline"></i></button>
|
|
306
|
+
</div>
|
|
307
|
+
```
|
|
250
308
|
|
|
251
309
|
## Common Patterns
|
|
252
310
|
|
|
@@ -298,7 +356,7 @@ See `snippets/responsive-header.html` for a full working example.
|
|
|
298
356
|
- **`border-top`**, **`border-right`**, **`border-bottom`**, **`border-left`** — Single-side borders.
|
|
299
357
|
- **`border-thick`** — 3px solid border (all sides). Also `border-top-thick`, `border-right-thick`, `border-bottom-thick`, `border-left-thick`.
|
|
300
358
|
- **`no-border`** — Remove all borders. Also `no-border-top`, `no-border-right`, `no-border-bottom`, `no-border-left`.
|
|
301
|
-
- **`border-radius`** —
|
|
359
|
+
- **`border-radius`** — Uses `var(--ply-border-radius)` (default 0.25rem, themeable). `border-radius-lg`, `border-radius-xl`, `circle` (100%).
|
|
302
360
|
|
|
303
361
|
### Other Common Patterns
|
|
304
362
|
|
package/README.md
CHANGED
|
@@ -99,6 +99,7 @@ Override `--ply-*` CSS custom properties to create any theme:
|
|
|
99
99
|
--ply-color-accent: #92400e; /* Icons, badges, section accents */
|
|
100
100
|
--ply-btn-default-bg: #92400e; /* Primary button + links */
|
|
101
101
|
--ply-btn-secondary-bg: #78350f; /* Secondary button */
|
|
102
|
+
--ply-border-radius: 0.375rem; /* Global border radius */
|
|
102
103
|
--ply-btn-border-radius: 0.5rem; /* Button corner radius */
|
|
103
104
|
--ply-font-body: Palatino, Georgia, serif;
|
|
104
105
|
--ply-font-heading: Palatino, Georgia, serif;
|
|
@@ -114,11 +115,11 @@ See `snippets/custom-theme.html` for a full working example.
|
|
|
114
115
|
|
|
115
116
|
## Icons
|
|
116
117
|
|
|
117
|
-
ply doesn't include icons. [
|
|
118
|
+
ply doesn't include icons. [Lucide](https://lucide.dev) is recommended — lightweight, clean, and pairs well with ply. Any icon library works.
|
|
118
119
|
|
|
119
120
|
```html
|
|
120
|
-
<script src="https://cdn.jsdelivr.net/npm/
|
|
121
|
-
<script>
|
|
121
|
+
<script src="https://cdn.jsdelivr.net/npm/lucide@latest/dist/umd/lucide.min.js"></script>
|
|
122
|
+
<script>lucide.createIcons();</script>
|
|
122
123
|
```
|
|
123
124
|
|
|
124
125
|
## AI Integration
|
|
@@ -151,7 +152,7 @@ ply targets ADA Title II (28 CFR Part 35) / WCAG 2.1 AA compliance at the framew
|
|
|
151
152
|
|
|
152
153
|
## Documentation
|
|
153
154
|
|
|
154
|
-
Full interactive docs at [
|
|
155
|
+
Full interactive docs at [plycss.com](https://plycss.com) — browse every class with live examples, search the entire framework, and copy-paste code snippets.
|
|
155
156
|
|
|
156
157
|
## Roadmap
|
|
157
158
|
|
package/dist/css/ply-core.css
CHANGED
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
--ply-btn-secondary-bg-hover: color-mix(in oklch, var(--ply-btn-secondary-bg), black 15%);
|
|
45
45
|
--ply-btn-secondary-bg-active: #2b2b2b;
|
|
46
46
|
--ply-btn-secondary-bg-active: color-mix(in oklch, var(--ply-btn-secondary-bg), black 25%);
|
|
47
|
+
--ply-border-radius: 0.25rem;
|
|
47
48
|
--ply-btn-border-radius: 2rem;
|
|
48
49
|
--ply-nav-bg: #ffffff;
|
|
49
50
|
--ply-nav-color: #161616;
|
|
@@ -145,9 +146,9 @@
|
|
|
145
146
|
--ply-color-text-inverse: #161616;
|
|
146
147
|
--ply-border-color: #393939;
|
|
147
148
|
--ply-border-strong: #6f6f6f;
|
|
148
|
-
--ply-color-link:
|
|
149
|
+
--ply-color-link: #4589ff;
|
|
149
150
|
--ply-color-link-hover: #619bff;
|
|
150
|
-
--ply-color-link-hover: color-mix(in oklch,
|
|
151
|
+
--ply-color-link-hover: color-mix(in oklch, #4589ff, white 15%);
|
|
151
152
|
--ply-color-focus: #0f62fe;
|
|
152
153
|
--ply-color-field-bg: #262626;
|
|
153
154
|
--ply-color-input-border: #6f6f6f;
|
|
@@ -261,9 +262,9 @@
|
|
|
261
262
|
--ply-color-text-inverse: #161616;
|
|
262
263
|
--ply-border-color: #393939;
|
|
263
264
|
--ply-border-strong: #6f6f6f;
|
|
264
|
-
--ply-color-link:
|
|
265
|
+
--ply-color-link: #4589ff;
|
|
265
266
|
--ply-color-link-hover: #619bff;
|
|
266
|
-
--ply-color-link-hover: color-mix(in oklch,
|
|
267
|
+
--ply-color-link-hover: color-mix(in oklch, #4589ff, white 15%);
|
|
267
268
|
--ply-color-focus: #0f62fe;
|
|
268
269
|
--ply-color-field-bg: #262626;
|
|
269
270
|
--ply-color-input-border: #6f6f6f;
|
|
@@ -714,7 +715,7 @@ img {
|
|
|
714
715
|
/* Native <details>/<summary> — Swiss/Modernist accordion */
|
|
715
716
|
details {
|
|
716
717
|
border: 1px solid var(--ply-border-color, #e0e0e0);
|
|
717
|
-
border-radius:
|
|
718
|
+
border-radius: var(--ply-border-radius);
|
|
718
719
|
padding: 0.75rem 1rem;
|
|
719
720
|
margin-bottom: 1.5rem;
|
|
720
721
|
}
|
|
@@ -749,7 +750,7 @@ details[open] > summary {
|
|
|
749
750
|
/* Native <dialog> — modal styling */
|
|
750
751
|
dialog {
|
|
751
752
|
border: none;
|
|
752
|
-
border-radius:
|
|
753
|
+
border-radius: var(--ply-border-radius);
|
|
753
754
|
padding: 1.5rem;
|
|
754
755
|
max-width: 32rem;
|
|
755
756
|
width: 90%;
|
|
@@ -769,21 +770,21 @@ progress {
|
|
|
769
770
|
width: 100%;
|
|
770
771
|
height: 0.5rem;
|
|
771
772
|
border: none;
|
|
772
|
-
border-radius:
|
|
773
|
+
border-radius: var(--ply-border-radius);
|
|
773
774
|
background: var(--ply-bg-muted, #e0e0e0);
|
|
774
775
|
margin-bottom: 1.5rem;
|
|
775
776
|
}
|
|
776
777
|
progress::-webkit-progress-bar {
|
|
777
778
|
background: var(--ply-bg-muted, #e0e0e0);
|
|
778
|
-
border-radius:
|
|
779
|
+
border-radius: var(--ply-border-radius);
|
|
779
780
|
}
|
|
780
781
|
progress::-webkit-progress-value {
|
|
781
782
|
background: var(--ply-color-link, #0f62fe);
|
|
782
|
-
border-radius:
|
|
783
|
+
border-radius: var(--ply-border-radius);
|
|
783
784
|
}
|
|
784
785
|
progress::-moz-progress-bar {
|
|
785
786
|
background: var(--ply-color-link, #0f62fe);
|
|
786
|
-
border-radius:
|
|
787
|
+
border-radius: var(--ply-border-radius);
|
|
787
788
|
}
|
|
788
789
|
|
|
789
790
|
meter {
|
|
@@ -793,7 +794,7 @@ meter {
|
|
|
793
794
|
width: 100%;
|
|
794
795
|
height: 0.5rem;
|
|
795
796
|
border: none;
|
|
796
|
-
border-radius:
|
|
797
|
+
border-radius: var(--ply-border-radius);
|
|
797
798
|
background: var(--ply-bg-muted, #e0e0e0);
|
|
798
799
|
margin-bottom: 1.5rem;
|
|
799
800
|
}
|
|
@@ -1227,7 +1228,7 @@ meter {
|
|
|
1227
1228
|
}
|
|
1228
1229
|
|
|
1229
1230
|
.border-radius {
|
|
1230
|
-
border-radius:
|
|
1231
|
+
border-radius: var(--ply-border-radius);
|
|
1231
1232
|
}
|
|
1232
1233
|
|
|
1233
1234
|
.req,
|
|
@@ -1638,7 +1639,7 @@ pre {
|
|
|
1638
1639
|
color: var(--ply-color-body, #222);
|
|
1639
1640
|
background: var(--ply-color-code-bg, #f4f4f4);
|
|
1640
1641
|
border: 1px solid var(--ply-color-code-border, #d4d4d4);
|
|
1641
|
-
border-radius:
|
|
1642
|
+
border-radius: var(--ply-border-radius);
|
|
1642
1643
|
padding: 1rem;
|
|
1643
1644
|
overflow: auto;
|
|
1644
1645
|
}
|
|
@@ -1913,7 +1914,7 @@ table tfoot td {
|
|
|
1913
1914
|
.units-row.reverse-direction, .units-row.right-to-left {
|
|
1914
1915
|
flex-direction: row-reverse;
|
|
1915
1916
|
}
|
|
1916
|
-
.units-row.split {
|
|
1917
|
+
.units-row.joined, .units-row.split {
|
|
1917
1918
|
--units-gap: 0px;
|
|
1918
1919
|
gap: 0;
|
|
1919
1920
|
}
|
|
@@ -3225,11 +3226,11 @@ table.table-hovered tbody tr:hover td {
|
|
|
3225
3226
|
}
|
|
3226
3227
|
|
|
3227
3228
|
.border-radius-lg {
|
|
3228
|
-
border-radius:
|
|
3229
|
+
border-radius: calc(var(--ply-border-radius) * 3);
|
|
3229
3230
|
}
|
|
3230
3231
|
|
|
3231
3232
|
.border-radius-xl {
|
|
3232
|
-
border-radius:
|
|
3233
|
+
border-radius: calc(var(--ply-border-radius) * 6);
|
|
3233
3234
|
}
|
|
3234
3235
|
|
|
3235
3236
|
.text-primary {
|
|
@@ -3353,7 +3354,7 @@ table.table-hovered tbody tr:hover td {
|
|
|
3353
3354
|
|
|
3354
3355
|
.code {
|
|
3355
3356
|
border: 1px solid #f0f1f2;
|
|
3356
|
-
border-radius:
|
|
3357
|
+
border-radius: var(--ply-border-radius);
|
|
3357
3358
|
display: inline-block;
|
|
3358
3359
|
font-size: 0.8rem;
|
|
3359
3360
|
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
|
|
@@ -3591,7 +3592,7 @@ table.table-hovered tbody tr:hover td {
|
|
|
3591
3592
|
.form input[type=datetime-local],
|
|
3592
3593
|
.form textarea,
|
|
3593
3594
|
.form select {
|
|
3594
|
-
border-radius:
|
|
3595
|
+
border-radius: var(--ply-border-radius);
|
|
3595
3596
|
display: block;
|
|
3596
3597
|
width: 100%;
|
|
3597
3598
|
padding: 0.5em 0.75em;
|
|
@@ -3694,7 +3695,7 @@ textarea {
|
|
|
3694
3695
|
}
|
|
3695
3696
|
|
|
3696
3697
|
fieldset {
|
|
3697
|
-
border-radius:
|
|
3698
|
+
border-radius: var(--ply-border-radius);
|
|
3698
3699
|
background-color: var(--ply-bg-surface);
|
|
3699
3700
|
padding: 1.5rem;
|
|
3700
3701
|
margin-bottom: 1.5rem;
|
|
@@ -3827,18 +3828,18 @@ select.input-xs {
|
|
|
3827
3828
|
min-width: 0;
|
|
3828
3829
|
display: block !important;
|
|
3829
3830
|
margin-bottom: 0;
|
|
3830
|
-
border-radius:
|
|
3831
|
+
border-radius: var(--ply-border-radius);
|
|
3831
3832
|
}
|
|
3832
3833
|
.input-groups input:not(:last-child),
|
|
3833
3834
|
.input-groups textarea:not(:last-child),
|
|
3834
3835
|
.input-groups select:not(:last-child) {
|
|
3835
3836
|
border-right: none;
|
|
3836
|
-
border-radius:
|
|
3837
|
+
border-radius: var(--ply-border-radius) 0 0 var(--ply-border-radius);
|
|
3837
3838
|
}
|
|
3838
3839
|
.input-groups input:not(:first-child),
|
|
3839
3840
|
.input-groups textarea:not(:first-child),
|
|
3840
3841
|
.input-groups select:not(:first-child) {
|
|
3841
|
-
border-radius: 0
|
|
3842
|
+
border-radius: 0 var(--ply-border-radius) var(--ply-border-radius) 0;
|
|
3842
3843
|
}
|
|
3843
3844
|
.input-groups input:not(:first-child, :last-child),
|
|
3844
3845
|
.input-groups textarea:not(:first-child, :last-child),
|
|
@@ -3860,11 +3861,11 @@ select.input-xs {
|
|
|
3860
3861
|
}
|
|
3861
3862
|
.input-groups .input-prepend {
|
|
3862
3863
|
border-right: none;
|
|
3863
|
-
border-radius:
|
|
3864
|
+
border-radius: var(--ply-border-radius) 0 0 var(--ply-border-radius);
|
|
3864
3865
|
}
|
|
3865
3866
|
.input-groups .input-append {
|
|
3866
3867
|
border-left: none;
|
|
3867
|
-
border-radius: 0
|
|
3868
|
+
border-radius: 0 var(--ply-border-radius) var(--ply-border-radius) 0;
|
|
3868
3869
|
}
|
|
3869
3870
|
.input-groups .input-append:has(.btn) {
|
|
3870
3871
|
padding: 0;
|
|
@@ -3873,7 +3874,7 @@ select.input-xs {
|
|
|
3873
3874
|
.input-groups .input-append .btn {
|
|
3874
3875
|
display: flex;
|
|
3875
3876
|
align-items: center;
|
|
3876
|
-
border-radius: 0
|
|
3877
|
+
border-radius: 0 var(--ply-border-radius) var(--ply-border-radius) 0;
|
|
3877
3878
|
margin: 0;
|
|
3878
3879
|
border-left: none;
|
|
3879
3880
|
white-space: nowrap;
|
|
@@ -3890,7 +3891,7 @@ select.input-xs {
|
|
|
3890
3891
|
.input-groups .btn-append .btn {
|
|
3891
3892
|
display: flex;
|
|
3892
3893
|
align-items: center;
|
|
3893
|
-
border-radius: 0
|
|
3894
|
+
border-radius: 0 var(--ply-border-radius) var(--ply-border-radius) 0;
|
|
3894
3895
|
margin: 0;
|
|
3895
3896
|
white-space: nowrap;
|
|
3896
3897
|
}
|
|
@@ -3935,7 +3936,7 @@ select.select-outlined {
|
|
|
3935
3936
|
background-size: 0.75em;
|
|
3936
3937
|
padding: 0.5em 2.5em 0.5em 0.75em;
|
|
3937
3938
|
border: 1px solid var(--ply-border-strong, #d4d4d4);
|
|
3938
|
-
border-radius:
|
|
3939
|
+
border-radius: var(--ply-border-radius);
|
|
3939
3940
|
color: var(--ply-color-body);
|
|
3940
3941
|
font-size: 1em;
|
|
3941
3942
|
line-height: 1.5rem;
|
|
@@ -4197,7 +4198,7 @@ nav ul {
|
|
|
4197
4198
|
display: block;
|
|
4198
4199
|
padding: 0.25rem 0.75rem;
|
|
4199
4200
|
font-size: 0.875rem;
|
|
4200
|
-
border-radius: var(--ply-nav-stacked-radius,
|
|
4201
|
+
border-radius: var(--ply-nav-stacked-radius, var(--ply-border-radius));
|
|
4201
4202
|
}
|
|
4202
4203
|
.nav-stacked a {
|
|
4203
4204
|
color: var(--ply-nav-color);
|
|
@@ -4382,7 +4383,7 @@ nav ul {
|
|
|
4382
4383
|
height: 2.25rem;
|
|
4383
4384
|
padding: 0.25rem 0.75rem;
|
|
4384
4385
|
border: 1px solid var(--ply-border-color);
|
|
4385
|
-
border-radius:
|
|
4386
|
+
border-radius: var(--ply-border-radius);
|
|
4386
4387
|
background: var(--ply-bg-surface, #fff);
|
|
4387
4388
|
color: var(--ply-color-body);
|
|
4388
4389
|
text-decoration: none;
|
|
@@ -4449,13 +4450,15 @@ input[type=button].btn,
|
|
|
4449
4450
|
input[type=reset].btn,
|
|
4450
4451
|
button.btn {
|
|
4451
4452
|
transition: all 150ms ease-in-out, transform 50ms ease, background 150ms ease-in-out;
|
|
4452
|
-
display: inline-
|
|
4453
|
+
display: inline-flex;
|
|
4453
4454
|
vertical-align: top;
|
|
4455
|
+
align-items: center;
|
|
4456
|
+
justify-content: center;
|
|
4457
|
+
gap: var(--ply-btn-gap, 0.5em);
|
|
4454
4458
|
font-family: var(--ply-font-body, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji);
|
|
4455
|
-
font-size: 1em;
|
|
4459
|
+
font-size: var(--ply-btn-font-size, 1em);
|
|
4456
4460
|
font-weight: 400;
|
|
4457
4461
|
line-height: 1.5rem;
|
|
4458
|
-
text-align: center;
|
|
4459
4462
|
text-decoration: none;
|
|
4460
4463
|
color: var(--ply-btn-secondary-color, var(--ply-color-text-inverse, #fff));
|
|
4461
4464
|
-webkit-appearance: none;
|
|
@@ -5396,23 +5399,27 @@ button.btn-white.btn-outline.btn-active {
|
|
|
5396
5399
|
}
|
|
5397
5400
|
.btn-single .btn:first-child,
|
|
5398
5401
|
.btn-group .btn:first-child {
|
|
5399
|
-
border-radius: 0.
|
|
5402
|
+
border-radius: calc(var(--ply-border-radius) * 0.5) 0 0 calc(var(--ply-border-radius) * 0.5);
|
|
5400
5403
|
}
|
|
5401
5404
|
.btn-single .btn:last-child,
|
|
5402
5405
|
.btn-group .btn:last-child {
|
|
5403
|
-
border-radius: 0 0.
|
|
5406
|
+
border-radius: 0 calc(var(--ply-border-radius) * 0.5) calc(var(--ply-border-radius) * 0.5) 0;
|
|
5407
|
+
}
|
|
5408
|
+
.btn-single.joined,
|
|
5409
|
+
.btn-group.joined {
|
|
5410
|
+
gap: 0;
|
|
5404
5411
|
}
|
|
5405
5412
|
.btn-single.rounded .btn:first-child,
|
|
5406
5413
|
.btn-single.rounded .input-search:first-child,
|
|
5407
5414
|
.btn-group.rounded .btn:first-child,
|
|
5408
5415
|
.btn-group.rounded .input-search:first-child {
|
|
5409
|
-
border-radius:
|
|
5416
|
+
border-radius: calc(var(--ply-border-radius) * 2) 0 0 calc(var(--ply-border-radius) * 2);
|
|
5410
5417
|
}
|
|
5411
5418
|
.btn-single.rounded .btn:last-child,
|
|
5412
5419
|
.btn-single.rounded .input-search:last-child,
|
|
5413
5420
|
.btn-group.rounded .btn:last-child,
|
|
5414
5421
|
.btn-group.rounded .input-search:last-child {
|
|
5415
|
-
border-radius: 0
|
|
5422
|
+
border-radius: 0 calc(var(--ply-border-radius) * 2) calc(var(--ply-border-radius) * 2) 0;
|
|
5416
5423
|
}
|
|
5417
5424
|
|
|
5418
5425
|
/* =Notifications
|
|
@@ -5423,7 +5430,7 @@ button.btn-white.btn-outline.btn-active {
|
|
|
5423
5430
|
background: var(--ply-bg-surface-alt, #f7f8f8);
|
|
5424
5431
|
color: var(--ply-color-body, #0f0f0f);
|
|
5425
5432
|
margin-bottom: 1.5rem;
|
|
5426
|
-
border-radius:
|
|
5433
|
+
border-radius: var(--ply-border-radius);
|
|
5427
5434
|
border-left: 4px solid #b3b6b7;
|
|
5428
5435
|
display: flex;
|
|
5429
5436
|
align-items: flex-start;
|
|
@@ -5470,7 +5477,7 @@ button.btn-white.btn-outline.btn-active {
|
|
|
5470
5477
|
align-items: center;
|
|
5471
5478
|
justify-content: center;
|
|
5472
5479
|
margin: -0.5rem -0.375rem -0.5rem 0;
|
|
5473
|
-
border-radius:
|
|
5480
|
+
border-radius: var(--ply-border-radius);
|
|
5474
5481
|
}
|
|
5475
5482
|
.tools-alert .tools-alert-dismiss:hover,
|
|
5476
5483
|
.tools-alert .alert-dismiss:hover,
|