@splendidlabz/styles 2.3.2 → 3.0.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.
- package/dist/no-tw/layouts.css +1278 -0
- package/dist/no-tw/styles.css +2018 -0
- package/dist/styles.css +1254 -1442
- package/package.json +23 -9
- package/src/addons/index.css +1 -0
- package/src/addons/scrollbars.css +60 -0
- package/src/{UI/_Accordion.scss → components/accordion.css} +8 -10
- package/src/components/drawer.css +20 -0
- package/src/components/index.css +2 -0
- package/src/effects/elevation.css +290 -0
- package/src/effects/frosted-glass.css +42 -0
- package/src/effects/gradients.css +107 -0
- package/src/effects/highlight.css +13 -0
- package/src/effects/index.css +6 -0
- package/src/effects/inner-border.css +18 -0
- package/src/effects/shadows.css +49 -0
- package/src/effects/text-outline.css +27 -0
- package/src/form/index.css +2 -0
- package/src/form/text-field.css +72 -0
- package/src/form/textarea.css +37 -0
- package/src/{Base/_Accessibility.scss → generic/accessibility.css} +21 -20
- package/src/generic/anchors-and-buttons.css +55 -0
- package/src/generic/form.css +62 -0
- package/src/generic/index.css +4 -0
- package/src/generic/typography.css +48 -0
- package/src/layouts/index.css +6 -0
- package/src/layouts/macro/flex-grid.css +33 -0
- package/src/layouts/macro/grid.css +127 -0
- package/src/layouts/macro/index.css +5 -0
- package/src/layouts/macro/masonry.css +23 -0
- package/src/layouts/macro/subgrid.css +33 -0
- package/src/layouts/macro/wrap.css +6 -0
- package/src/layouts/micro/breakout.css +38 -0
- package/src/layouts/micro/divider.css +102 -0
- package/src/layouts/micro/index.css +6 -0
- package/src/layouts/micro/micro.css +54 -0
- package/src/layouts/micro/scrollable.css +70 -0
- package/src/layouts/micro/stack.css +29 -0
- package/src/layouts/micro/stacking-context.css +3 -0
- package/src/layouts/position/edge.css +429 -0
- package/src/layouts/position/fixed.css +102 -0
- package/src/layouts/position/index.css +5 -0
- package/src/layouts/position/nudge.css +74 -0
- package/src/layouts/position/pos.css +337 -0
- package/src/layouts/position/sticky.css +11 -0
- package/src/layouts/shell/index.css +2 -0
- package/src/layouts/shell/shell-grid.css +34 -0
- package/src/layouts/shell/shell-simple.css +15 -0
- package/src/primitives/backdrop.css +8 -0
- package/src/{utils/_mixins.scss → primitives/break-word.css} +4 -2
- package/src/primitives/card.css +51 -0
- package/src/primitives/focus-within.css +12 -0
- package/src/primitives/hero-heading.css +44 -0
- package/src/primitives/indent-list.css +77 -0
- package/src/primitives/index.css +11 -0
- package/src/{Components/_Prose.scss → primitives/prose.css} +11 -29
- package/src/primitives/shapes.css +16 -0
- package/src/primitives/simple-svg.css +7 -0
- package/src/primitives/table.css +197 -0
- package/src/primitives/text.css +4 -0
- package/src/primitives/writing-mode.css +51 -0
- package/src/reset.css +114 -0
- package/src/scripts/Masonry.js +8 -0
- package/src/scripts/Scrollable.js +14 -0
- package/src/scripts/Sticky.js +34 -0
- package/src/scripts/all.js +7 -0
- package/src/scripts/index.js +4 -0
- package/src/styles.css +14 -0
- package/src/tools/border.css +9 -0
- package/src/tools/index.css +5 -0
- package/src/tools/object.css +5 -0
- package/src/tools/outlines.css +27 -0
- package/src/tools/pigment.css +205 -0
- package/src/tools/transitions.css +14 -0
- package/src/type/font-position.css +18 -0
- package/src/type/index.css +1 -0
- package/src/variables/breakpoints.css +103 -0
- package/src/variables/font.css +88 -0
- package/src/variables/index.css +4 -0
- package/src/variables/radius.css +54 -0
- package/src/variables/variables.css +34 -0
- package/dist/UI/Codepen.css +0 -13
- package/dist/UI/Codepen.css.map +0 -1
- package/dist/UI/Tweet.css +0 -7
- package/dist/UI/Tweet.css.map +0 -1
- package/dist/UI/Youtube.css +0 -13
- package/dist/UI/Youtube.css.map +0 -1
- package/dist/styles.css.map +0 -1
- package/src/Base/_Base.scss +0 -57
- package/src/Base/_Focus.scss +0 -38
- package/src/Base/_Transition.scss +0 -8
- package/src/Base/_index.scss +0 -4
- package/src/Components/_Box.scss +0 -9
- package/src/Components/_BrowserFrame.scss +0 -89
- package/src/Components/_Figure.scss +0 -5
- package/src/Components/_List.scss +0 -19
- package/src/Components/_Scrollbars.scss +0 -40
- package/src/Components/_SimpleSVG.scss +0 -9
- package/src/Components/_index.scss +0 -12
- package/src/Effects/_Backdrop.scss +0 -4
- package/src/Effects/_Elevation.scss +0 -92
- package/src/Effects/_Glow.scss +0 -51
- package/src/Effects/_Gradients.scss +0 -88
- package/src/Effects/_Shadows.scss +0 -51
- package/src/Effects/_SpecialShadows.scss +0 -45
- package/src/Effects/_Text-Outline.scss +0 -25
- package/src/Effects/_index.scss +0 -12
- package/src/Experimental/_SimplePricingPlan.scss +0 -141
- package/src/Forms/_Button.scss +0 -106
- package/src/Forms/_Combobox.scss +0 -49
- package/src/Forms/_FormBase.scss +0 -43
- package/src/Forms/_FormControls.scss +0 -95
- package/src/Forms/_Range.scss +0 -101
- package/src/Forms/_Select.scss +0 -114
- package/src/Forms/_Switch.scss +0 -66
- package/src/Forms/_TextField.scss +0 -116
- package/src/Forms/_Textarea.scss +0 -41
- package/src/Forms/_index.scss +0 -10
- package/src/Typography/_WritingMode.scss +0 -33
- package/src/Typography/_index.scss +0 -1
- package/src/UI/Codepen.scss +0 -11
- package/src/UI/Tweet.scss +0 -5
- package/src/UI/Youtube.scss +0 -13
- package/src/UI/_Breadcrumbs.scss +0 -24
- package/src/UI/_CQChecker.scss +0 -16
- package/src/UI/_Callout.scss +0 -31
- package/src/UI/_Drawer.scss +0 -28
- package/src/UI/_Dropdown.scss +0 -14
- package/src/UI/_FancyList.scss +0 -30
- package/src/UI/_PerspectiveHover.scss +0 -9
- package/src/UI/_Popover.scss +0 -25
- package/src/UI/_Resizer.scss +0 -43
- package/src/UI/_Spotlight.scss +0 -42
- package/src/UI/_Status.scss +0 -33
- package/src/UI/_Tabs.scss +0 -112
- package/src/UI/_Textwall.scss +0 -22
- package/src/UI/_index.scss +0 -17
- package/src/Utilities/_Shapes.scss +0 -20
- package/src/Utilities/_index.scss +0 -1
- package/src/Variables/_Globals.scss +0 -33
- package/src/Variables/_index.scss +0 -1
- package/src/_Animations.scss +0 -18
- package/src/_Fill.scss +0 -314
- package/src/styles.scss +0 -12
- package/src/utils/_index.scss +0 -3
- package/src/utils/functions/_fns.scss +0 -77
- package/src/utils/functions/_fonts.scss +0 -114
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
// ========================
|
|
2
|
-
// Plan
|
|
3
|
-
// ========================
|
|
4
|
-
.PlanLayout {
|
|
5
|
-
display: grid;
|
|
6
|
-
align-content: center;
|
|
7
|
-
gap: 1rem;
|
|
8
|
-
|
|
9
|
-
// We only create a 3-column layout after 1000px width
|
|
10
|
-
@media (width >= 1000px) {
|
|
11
|
-
grid-template-columns: repeat(3, 1fr);
|
|
12
|
-
grid-template-rows: repeat(3, auto);
|
|
13
|
-
|
|
14
|
-
> * {
|
|
15
|
-
grid-row: 1/-1;
|
|
16
|
-
grid-template-rows: subgrid;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.Plan {
|
|
22
|
-
--border-width: 4px;
|
|
23
|
-
--radius: 1rem;
|
|
24
|
-
--border-color: #ccc;
|
|
25
|
-
--bg-color: white;
|
|
26
|
-
--bg-color-darker: #fafafa;
|
|
27
|
-
|
|
28
|
-
display: grid;
|
|
29
|
-
gap: inherit;
|
|
30
|
-
padding: 1.5rem 1rem;
|
|
31
|
-
border: var(--border-width) solid var(--border-color);
|
|
32
|
-
border-radius: var(--radius);
|
|
33
|
-
color: color(mine);
|
|
34
|
-
background-color: var(--bg-color);
|
|
35
|
-
|
|
36
|
-
svg path {
|
|
37
|
-
fill: color(mine);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// Plans have a different style below 1000px breakpoint
|
|
41
|
-
// We're using breakpoints because container queries don't work with subgrid
|
|
42
|
-
// Oh! But why don't we try after a certain amount then container queries? 🤔
|
|
43
|
-
@media (550px <= width < 1000px) {
|
|
44
|
-
grid-template-columns: 1.5fr 1fr;
|
|
45
|
-
|
|
46
|
-
.Plan-body {
|
|
47
|
-
grid-column: 2;
|
|
48
|
-
grid-row: span 2;
|
|
49
|
-
display: flex;
|
|
50
|
-
flex-flow: column;
|
|
51
|
-
justify-content: center;
|
|
52
|
-
margin: -1rem -0.5rem;
|
|
53
|
-
padding-inline: inherit;
|
|
54
|
-
border: 1px solid var(--border-color);
|
|
55
|
-
border-radius: calc(var(--radius) - 0.5rem);
|
|
56
|
-
background-color: var(--bg-color-darker);
|
|
57
|
-
place-self: stretch stretch;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
&:hover .Plan-body,
|
|
61
|
-
&:focus .Plan-body {
|
|
62
|
-
background-color: var(--bg-color-darker-hover);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
@media (width >= 1000px) or (width < 550px) {
|
|
67
|
-
.Plan-header {
|
|
68
|
-
text-align: center;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.Plan:not(.Plan--Recommended) {
|
|
74
|
-
&:hover,
|
|
75
|
-
&:focus {
|
|
76
|
-
--border-color: #99c48e;
|
|
77
|
-
--bg-color: #f8fff6;
|
|
78
|
-
--bg-color-darker: #f8fff6;
|
|
79
|
-
--bg-color-darker-hover: #ebf7e7;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.Plan-recommended {
|
|
84
|
-
position: absolute;
|
|
85
|
-
font-size: 0.6rem;
|
|
86
|
-
text-transform: uppercase;
|
|
87
|
-
background-color: var(--recommended-background-color);
|
|
88
|
-
|
|
89
|
-
@media (width <= 550px) {
|
|
90
|
-
transform: translateX(-50%);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Show as a pill
|
|
94
|
-
@media (width < 1000px) {
|
|
95
|
-
top: calc(-0.5rem - 0.5lh + 2px); // Padding, line height and borders
|
|
96
|
-
display: inline-block;
|
|
97
|
-
margin-bottom: -1.5rem;
|
|
98
|
-
padding: 0.25rem 0.5rem;
|
|
99
|
-
border: 3px solid var(--border-color);
|
|
100
|
-
border-radius: 2em;
|
|
101
|
-
font-weight: 700;
|
|
102
|
-
letter-spacing: 0.05em;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Show recommended above plan
|
|
106
|
-
@media (width >=1000px) {
|
|
107
|
-
position: absolute;
|
|
108
|
-
top: 0;
|
|
109
|
-
left: calc(-1 * var(--border-width));
|
|
110
|
-
right: calc(-1 * var(--border-width));
|
|
111
|
-
padding: 0.5rem;
|
|
112
|
-
border: var(--border-width) solid var(--border-color);
|
|
113
|
-
border-top-left-radius: var(--radius);
|
|
114
|
-
border-top-right-radius: var(--radius);
|
|
115
|
-
font-weight: bold;
|
|
116
|
-
letter-spacing: 0.075em;
|
|
117
|
-
transform: translateY(-100%);
|
|
118
|
-
text-align: center;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// ========================
|
|
123
|
-
// Accents for plans
|
|
124
|
-
// ========================
|
|
125
|
-
.Plan--Recommended {
|
|
126
|
-
--border-color: #7198c8;
|
|
127
|
-
--recommended-background-color: #c5e2ff;
|
|
128
|
-
--bg-color: #edf6ff;
|
|
129
|
-
--bg-color-darker: #e1f0ff;
|
|
130
|
-
--bg-color-darker-hover: #d4e7fb;
|
|
131
|
-
|
|
132
|
-
&:hover,
|
|
133
|
-
&:focus {
|
|
134
|
-
background-color: #e7f3ff;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
@media (width >= 1000px) {
|
|
138
|
-
border-top-left-radius: 0;
|
|
139
|
-
border-top-right-radius: 0;
|
|
140
|
-
}
|
|
141
|
-
}
|
package/src/Forms/_Button.scss
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
// ========================
|
|
2
|
-
// Reset Button and base styles
|
|
3
|
-
// ========================
|
|
4
|
-
@layer components {
|
|
5
|
-
button,
|
|
6
|
-
[class*='Button'] {
|
|
7
|
-
flex-shrink: 0; // Prevents button from shrinking when used in flex elements
|
|
8
|
-
// align-self: start; // Prevents buttons from expanding to 100% size when used in flex elements. Specify align-self:stretch to expand to full width. This is problematic in Horizontal flow.
|
|
9
|
-
justify-content: center;
|
|
10
|
-
padding: 0.25em 1em;
|
|
11
|
-
border-width: var(--border-width, 1px);
|
|
12
|
-
border-color: var(--border-color);
|
|
13
|
-
border-radius: var(--radius);
|
|
14
|
-
font: var(--input-font, inherit);
|
|
15
|
-
color: var(--text-color, currentColor);
|
|
16
|
-
background-color: var(--bg-color, #eee);
|
|
17
|
-
text-decoration: none !important;
|
|
18
|
-
transition: var(--transition-values);
|
|
19
|
-
transition-property: var(--transition-props);
|
|
20
|
-
cursor: pointer;
|
|
21
|
-
|
|
22
|
-
* {
|
|
23
|
-
pointer-events: none;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
svg path {
|
|
27
|
-
transition: var(--transition-values);
|
|
28
|
-
transition-property: var(--transition-props);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// Ruleset here is the same as .Fill.
|
|
32
|
-
// We are duplicating because CSS doesn't have Tailwind's @apply functionality.
|
|
33
|
-
&:hover {
|
|
34
|
-
border-color: var(--border-hover-color, var(--border-color));
|
|
35
|
-
color: var(--text-hover-color, var(--text-color));
|
|
36
|
-
background-color: var(--bg-hover-color, var(--bg-color));
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Fallback to hover color
|
|
40
|
-
&:focus {
|
|
41
|
-
border-color: var(
|
|
42
|
-
--border-focus-color,
|
|
43
|
-
var(--border-hover-color, var(--border-color))
|
|
44
|
-
);
|
|
45
|
-
color: var(
|
|
46
|
-
--text-focus-color,
|
|
47
|
-
var(--text-hover-color, var(--text-color))
|
|
48
|
-
);
|
|
49
|
-
background-color: var(
|
|
50
|
-
--bg-focus-color,
|
|
51
|
-
var(--bg-hover-color, var(--bg-color))
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Fallback to hover color
|
|
56
|
-
&:active {
|
|
57
|
-
border-color: var(
|
|
58
|
-
--border-active-color,
|
|
59
|
-
var(--border-hover-color, var(--border-color))
|
|
60
|
-
);
|
|
61
|
-
color: var(
|
|
62
|
-
--text-active-color,
|
|
63
|
-
var(--text-hover-color, var(--text-color))
|
|
64
|
-
);
|
|
65
|
-
background-color: var(
|
|
66
|
-
--bg-active-color,
|
|
67
|
-
var(--bg-hover-color, var(--bg-color))
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Fallback to hover color
|
|
72
|
-
&.selected,
|
|
73
|
-
&[aria-selected],
|
|
74
|
-
&[aria-expanded='true'] {
|
|
75
|
-
border-color: var(
|
|
76
|
-
--border-selected-color,
|
|
77
|
-
var(--border-hover-color, var(--border-color))
|
|
78
|
-
);
|
|
79
|
-
color: var(
|
|
80
|
-
--text-selected-color,
|
|
81
|
-
var(--text-hover-color, var(--text-color))
|
|
82
|
-
);
|
|
83
|
-
background-color: var(
|
|
84
|
-
--bg-selected-color,
|
|
85
|
-
var(--bg-hover-color, var(--bg-color))
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// ========================
|
|
91
|
-
// Base Splendid Labz Buttons
|
|
92
|
-
// ========================
|
|
93
|
-
[class*='Button'] {
|
|
94
|
-
display: inline-flex;
|
|
95
|
-
align-items: center;
|
|
96
|
-
gap: 0.5em;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// For using Icons as the button content
|
|
101
|
-
@layer components {
|
|
102
|
-
.Button-icon {
|
|
103
|
-
padding: var(--padding, 0.5em);
|
|
104
|
-
line-height: 1;
|
|
105
|
-
}
|
|
106
|
-
}
|
package/src/Forms/_Combobox.scss
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
.ListboxPopover {
|
|
2
|
-
padding: 0;
|
|
3
|
-
border: 0;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
[role='listbox'] {
|
|
7
|
-
max-height: 15rem; // Default value. Specify as you wish in CSS
|
|
8
|
-
overflow-y: auto;
|
|
9
|
-
|
|
10
|
-
[role='option'] {
|
|
11
|
-
cursor: pointer; // Ensures cursor stays as pointer even when hovering over text
|
|
12
|
-
> * {
|
|
13
|
-
pointer-events: none;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
[aria-selected='true'] {
|
|
18
|
-
background: var(--bg-selected-color, pink);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// @layer components {
|
|
23
|
-
.AutocompleteOptions {
|
|
24
|
-
.ComboboxMatchedString {
|
|
25
|
-
font-weight: bold;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Needs fixing again.
|
|
30
|
-
// Transition for AutocompleteLoader and AutocompleteEmpty. Relies on :empty state and @starting-style for transitions.
|
|
31
|
-
.AutocompleteLoader,
|
|
32
|
-
.AutocompleteEmpty {
|
|
33
|
-
transition: var(--transition);
|
|
34
|
-
transition-property: var(--transition-props), display;
|
|
35
|
-
transition-behavior: allow-discrete;
|
|
36
|
-
|
|
37
|
-
@starting-style {
|
|
38
|
-
opacity: 0;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
&:empty {
|
|
42
|
-
display: none;
|
|
43
|
-
opacity: 0;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.TimepickerOptions .Listbox li {
|
|
48
|
-
padding: 0.5rem 1rem;
|
|
49
|
-
}
|
package/src/Forms/_FormBase.scss
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
@layer components {
|
|
2
|
-
// Text based inputs
|
|
3
|
-
input:where(
|
|
4
|
-
[type='text'],
|
|
5
|
-
[type='search'],
|
|
6
|
-
[type='email'],
|
|
7
|
-
[type='password'],
|
|
8
|
-
[type='tel'],
|
|
9
|
-
[type='url']
|
|
10
|
-
),
|
|
11
|
-
textarea,
|
|
12
|
-
select,
|
|
13
|
-
.Field {
|
|
14
|
-
display: block;
|
|
15
|
-
width: 100%;
|
|
16
|
-
border-radius: inherit;
|
|
17
|
-
font: inherit;
|
|
18
|
-
font-family: var(--input-font, inherit);
|
|
19
|
-
color: var(--text-color, currentColor);
|
|
20
|
-
background-color: var(--bg-color, transparent);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Friendly password dots
|
|
24
|
-
// See https://pqina.nl/blog/styling-password-field-dots/
|
|
25
|
-
input[type='password'] {
|
|
26
|
-
font-family: Verdana, sans-serif;
|
|
27
|
-
letter-spacing: 0.125em;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.disabled,
|
|
31
|
-
.readonly,
|
|
32
|
-
[disabled],
|
|
33
|
-
[readonly] {
|
|
34
|
-
opacity: 0.5; // Super simple way. Styles can be improved.
|
|
35
|
-
&:where(input) {
|
|
36
|
-
cursor: not-allowed;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
&:focus-visible {
|
|
40
|
-
outline-color: transparent;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
// ========================
|
|
2
|
-
// Checkboxes and Radios
|
|
3
|
-
// ========================
|
|
4
|
-
@layer components {
|
|
5
|
-
.Legend + * {
|
|
6
|
-
margin-top: 0.25rem;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.Radio,
|
|
10
|
-
.Checkbox {
|
|
11
|
-
display: flex;
|
|
12
|
-
align-items: center;
|
|
13
|
-
gap: var(--gap, 0.5em);
|
|
14
|
-
|
|
15
|
-
:where(&) + :where(&) {
|
|
16
|
-
margin-top: 0.125em;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// For both checkbox and radios
|
|
20
|
-
> :where(.Checkmark, .Radiomark) {
|
|
21
|
-
display: grid;
|
|
22
|
-
place-items: center;
|
|
23
|
-
|
|
24
|
-
> * {
|
|
25
|
-
grid-column: 1;
|
|
26
|
-
grid-row: 1;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
> input {
|
|
30
|
-
appearance: none;
|
|
31
|
-
display: grid;
|
|
32
|
-
place-content: center;
|
|
33
|
-
width: var(--width, var(--size, 1em));
|
|
34
|
-
height: var(--height, var(--size, 1em));
|
|
35
|
-
margin: 0;
|
|
36
|
-
padding: 0;
|
|
37
|
-
border: var(--border-width, 1px) var(--border-style, solid)
|
|
38
|
-
var(--border-color, black);
|
|
39
|
-
font: inherit;
|
|
40
|
-
background-color: var(--bg-color, transparent);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
svg {
|
|
44
|
-
pointer-events: none;
|
|
45
|
-
width: 0.85em;
|
|
46
|
-
height: 0.85em;
|
|
47
|
-
fill: var(--fill-color, none);
|
|
48
|
-
transform: scale(0);
|
|
49
|
-
transition: transform var(--transition-values);
|
|
50
|
-
|
|
51
|
-
path {
|
|
52
|
-
stroke: var(--stroke-color, pink);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
:where(.Checkmark, .Radiomark) ~ .TextInput {
|
|
58
|
-
display: none;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
:where(.Checkmark:has(:checked), .Radiomark:has(:checked)) ~ .TextInput {
|
|
62
|
-
display: block;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// Checkboxes
|
|
66
|
-
:where(input[type='checkbox']) {
|
|
67
|
-
border-radius: var(--checkbox-radius, 0.25em);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// SVG
|
|
71
|
-
:where(input:checked) ~ svg {
|
|
72
|
-
transform: scale(1);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Radios only
|
|
76
|
-
:where(input[type='radio']) {
|
|
77
|
-
border-radius: 50%;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// Default radio
|
|
81
|
-
:where(.radio) {
|
|
82
|
-
pointer-events: none;
|
|
83
|
-
width: 0.5em;
|
|
84
|
-
height: 0.5em;
|
|
85
|
-
border-radius: 50%;
|
|
86
|
-
background-color: var(--stroke-color, pink);
|
|
87
|
-
transform: scale(0);
|
|
88
|
-
transition: transform var(--transition-values);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
:where(input[type='radio']:checked ~ .radio) {
|
|
92
|
-
transform: scale(1);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
package/src/Forms/_Range.scss
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
// WIP. Not included.
|
|
2
|
-
// Simple - https://codepen.io/ibaslogic/pen/oNQMWrM
|
|
3
|
-
// Simple 2 - https://stackblitz.com/edit/multi-range-slider?file=src%2Fstyle.css,src%2Fcomponents%2FmultiRangeSlider%2FMultiRangeSlider.js
|
|
4
|
-
// Complex but more real - https://codepen.io/vsync/pen/mdEJMLv
|
|
5
|
-
// Ana tudor collection - https://codepen.io/collection/DgYaMj/?cursor=eyJwYWdlIjo4fQ==
|
|
6
|
-
@layer components {
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
input[type='range'] {
|
|
10
|
-
appearance: none;
|
|
11
|
-
width: 100%;
|
|
12
|
-
|
|
13
|
-
/* New additions */
|
|
14
|
-
height: 6px;
|
|
15
|
-
border-radius: 15px;
|
|
16
|
-
outline: none;
|
|
17
|
-
background: #ccc;
|
|
18
|
-
cursor: pointer;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* Thumb: webkit */
|
|
22
|
-
input[type='range']::-webkit-slider-thumb {
|
|
23
|
-
/* removing default appearance */
|
|
24
|
-
appearance: none;
|
|
25
|
-
width: 15px;
|
|
26
|
-
|
|
27
|
-
/* creating a custom design */
|
|
28
|
-
height: 15px;
|
|
29
|
-
border: none;
|
|
30
|
-
border-radius: 50%;
|
|
31
|
-
background-color: #f50;
|
|
32
|
-
|
|
33
|
-
/* box-shadow: -407px 0 0 400px #f50; emove this line */
|
|
34
|
-
transition: 0.2s ease-in-out;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/* Thumb: Firefox */
|
|
38
|
-
input[type='range']::-moz-range-thumb {
|
|
39
|
-
width: 15px;
|
|
40
|
-
height: 15px;
|
|
41
|
-
border: none;
|
|
42
|
-
border-radius: 50%;
|
|
43
|
-
background-color: #f50;
|
|
44
|
-
|
|
45
|
-
/* box-shadow: -407px 0 0 400px #f50; emove this line */
|
|
46
|
-
transition: 0.2s ease-in-out;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/* Hover, active & focus Thumb: Webkit */
|
|
50
|
-
|
|
51
|
-
input[type='range']::-webkit-slider-thumb:hover {
|
|
52
|
-
box-shadow: 0 0 0 10px rgb(255 85 0 / 10%);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
input[type='range']:active::-webkit-slider-thumb {
|
|
56
|
-
box-shadow: 0 0 0 13px rgb(255 85 0 / 20%);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
input[type='range']:focus::-webkit-slider-thumb {
|
|
60
|
-
box-shadow: 0 0 0 13px rgb(255 85 0 / 20%);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/* Hover, active & focus Thumb: Firfox */
|
|
64
|
-
|
|
65
|
-
input[type='range']::-moz-range-thumb:hover {
|
|
66
|
-
box-shadow: 0 0 0 10px rgb(255 85 0 / 10%);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
input[type='range']:active::-moz-range-thumb {
|
|
70
|
-
box-shadow: 0 0 0 13px rgb(255 85 0 / 20%);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
input[type='range']:focus::-moz-range-thumb {
|
|
74
|
-
box-shadow: 0 0 0 13px rgb(255 85 0 / 20%);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/* =============
|
|
78
|
-
Adding tick marks
|
|
79
|
-
========================= */
|
|
80
|
-
.range-slider {
|
|
81
|
-
flex: 1;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.sliderticks {
|
|
85
|
-
display: flex;
|
|
86
|
-
justify-content: space-between;
|
|
87
|
-
padding: 0 10px;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.sliderticks span {
|
|
91
|
-
display: flex;
|
|
92
|
-
justify-content: center;
|
|
93
|
-
width: 1px;
|
|
94
|
-
height: 10px;
|
|
95
|
-
line-height: 40px;
|
|
96
|
-
background: #d3d3d3;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/* =============
|
|
100
|
-
End tick marks
|
|
101
|
-
========================= */
|
package/src/Forms/_Select.scss
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
@layer components {
|
|
2
|
-
.Select {
|
|
3
|
-
:where(select) {
|
|
4
|
-
appearance: none;
|
|
5
|
-
color: var(--text-color);
|
|
6
|
-
background: var(--bg-color);
|
|
7
|
-
|
|
8
|
-
&:hover {
|
|
9
|
-
border-color: var(--border-hover-color, var(--border-color));
|
|
10
|
-
color: var(--text-hover-color, var(--text-color));
|
|
11
|
-
background-color: var(--bg-hover-color, var(--bg-color));
|
|
12
|
-
|
|
13
|
-
:where(svg path) {
|
|
14
|
-
fill: var(
|
|
15
|
-
--fill-hover-color,
|
|
16
|
-
var(--text-hover-color, var(--fill-color, var(--text-color)))
|
|
17
|
-
);
|
|
18
|
-
stroke: var(
|
|
19
|
-
--stroke-hover-color,
|
|
20
|
-
var(--text-hover-color, var(--stroke-color, var(--text-color)))
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Fallback to hover color
|
|
26
|
-
&:focus {
|
|
27
|
-
border-color: var(
|
|
28
|
-
--border-focus-color,
|
|
29
|
-
var(--border-hover-color, var(--border-color))
|
|
30
|
-
);
|
|
31
|
-
color: var(
|
|
32
|
-
--text-focus-color,
|
|
33
|
-
var(--text-hover-color, var(--text-color))
|
|
34
|
-
);
|
|
35
|
-
background-color: var(
|
|
36
|
-
--bg-focus-color,
|
|
37
|
-
var(--bg-hover-color, var(--bg-color))
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
:where(svg path) {
|
|
41
|
-
fill: var(
|
|
42
|
-
--fill-focus-color,
|
|
43
|
-
var(
|
|
44
|
-
--text-focus-color,
|
|
45
|
-
var(
|
|
46
|
-
--fill-hover-color,
|
|
47
|
-
var(--text-hover-color, var(--fill-color, var(--text-color)))
|
|
48
|
-
)
|
|
49
|
-
)
|
|
50
|
-
);
|
|
51
|
-
stroke: var(
|
|
52
|
-
--stroke-focus-color,
|
|
53
|
-
var(
|
|
54
|
-
--text-focus-color,
|
|
55
|
-
var(
|
|
56
|
-
--stroke-hover-color,
|
|
57
|
-
var(--text-hover-color, var(--stroke-color, var(--text-color)))
|
|
58
|
-
)
|
|
59
|
-
)
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
:where(select[multiple]),
|
|
66
|
-
:where(select[multiple]:focus) {
|
|
67
|
-
overflow: auto;
|
|
68
|
-
padding: 0;
|
|
69
|
-
|
|
70
|
-
:where(option) {
|
|
71
|
-
padding: 0.375em 0.75em;
|
|
72
|
-
color: var(--text-color);
|
|
73
|
-
background-image: linear-gradient(
|
|
74
|
-
0deg,
|
|
75
|
-
var(--bg-color) 0%,
|
|
76
|
-
var(--bg-color) 100%
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
:where(option:hover) {
|
|
81
|
-
color: var(--text-hover-color, var(--text-color));
|
|
82
|
-
background-image: linear-gradient(
|
|
83
|
-
0deg,
|
|
84
|
-
var(--bg-hover-color, var(--bg-color)) 0%,
|
|
85
|
-
var(--bg-hover-color, var(--bg-color)) 100%
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
:where(option:focus) {
|
|
90
|
-
color: var(
|
|
91
|
-
--text-focus-color,
|
|
92
|
-
var(--text-hover-color, var(--text-color))
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
background-image: linear-gradient(
|
|
96
|
-
0deg,
|
|
97
|
-
var(--bg-focus-color, var(--bg-hover-color, var(--bg-color))) 0%,
|
|
98
|
-
var(--bg-focus-color, var(--bg-hover-color, var(--bg-color))) 100%
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
:where(option:checked) {
|
|
103
|
-
color: var(--text-selected-color);
|
|
104
|
-
background-image: linear-gradient(
|
|
105
|
-
0deg,
|
|
106
|
-
var(--bg-selected-color,) 0%,
|
|
107
|
-
var(--bg-selected-color,) 100%
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// The :selected state of the options is fairly customizable in Chrome, somewhat in Firefox, and not at all in Safari. See the CodePen demo for a section that can be uncommented to preview this.
|
package/src/Forms/_Switch.scss
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
@layer components {
|
|
2
|
-
// ========================
|
|
3
|
-
// Switches
|
|
4
|
-
// Inspiration: https://tailwindui.com/components/application-ui/forms/toggles
|
|
5
|
-
// Variables Used
|
|
6
|
-
// --transition-values
|
|
7
|
-
|
|
8
|
-
// Local Variables
|
|
9
|
-
// --height
|
|
10
|
-
// --aspectRatio
|
|
11
|
-
// --gap
|
|
12
|
-
// --toggleFill: white;
|
|
13
|
-
// --bg-color: #aaa;
|
|
14
|
-
// --onStateBg: teal;
|
|
15
|
-
// ========================
|
|
16
|
-
// Border-width must have a unit here for this to work.
|
|
17
|
-
.Switch {
|
|
18
|
-
--width: 3.5em;
|
|
19
|
-
--height: 1.2em;
|
|
20
|
-
--inner-margin: 0.2em;
|
|
21
|
-
|
|
22
|
-
display: inline-flex;
|
|
23
|
-
|
|
24
|
-
input[type='checkbox'] {
|
|
25
|
-
appearance: none;
|
|
26
|
-
display: grid;
|
|
27
|
-
align-items: center;
|
|
28
|
-
width: var(--width);
|
|
29
|
-
padding: 0;
|
|
30
|
-
border-width: var(--border-width, 1px);
|
|
31
|
-
border-style: var(--border-style, solid);
|
|
32
|
-
border-color: var(--border-color, black);
|
|
33
|
-
border-radius: var(--height);
|
|
34
|
-
background-color: var(--bg-color, #eee);
|
|
35
|
-
transition: background-color var(--transition-values);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
input[type='checkbox']:checked {
|
|
39
|
-
background-color: var(--bg-color, teal);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// This is the part that moves
|
|
43
|
-
input[type='checkbox']::before {
|
|
44
|
-
--translateX: calc(
|
|
45
|
-
var(--width) - var(--height) - var(--inner-margin) * 2 - var(
|
|
46
|
-
--border-width,
|
|
47
|
-
1px
|
|
48
|
-
) * 2
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
content: '';
|
|
52
|
-
box-sizing: content-box;
|
|
53
|
-
width: var(--height);
|
|
54
|
-
height: var(--height);
|
|
55
|
-
margin: var(--inner-margin);
|
|
56
|
-
border-radius: 50%;
|
|
57
|
-
background-color: white;
|
|
58
|
-
box-shadow: var(--shadow);
|
|
59
|
-
transition: transform var(--transition-values);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
input[type='checkbox']:checked::before {
|
|
63
|
-
transform: translateX(var(--translateX));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|