Skip to content

Commit 8b2bca1

Browse files
committed
General improvements
1 parent 8eb0724 commit 8b2bca1

File tree

1 file changed

+30
-19
lines changed

1 file changed

+30
-19
lines changed

css/components/toggle.css

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
.toggle {
33
display: inline-flex;
44
align-items: center;
5-
cursor: pointer;
65
gap: var(--space-2);
76
}
87

8+
/* Label */
99
.toggle-label {
1010
font-size: clamp(0.875rem, 1vw + 0.25rem, 1rem);
1111
color: var(--neutral-700);
@@ -14,30 +14,30 @@
1414
/* Base Checkbox Styling */
1515
.toggle input[type="checkbox"] {
1616
position: relative;
17-
width: clamp(2.5rem, 5vw, 4rem);
18-
height: clamp(1.25rem, 3vw, 2rem);
17+
width: clamp(var(--space-10), 5vw, var(--space-16));
18+
height: clamp(var(--space-5), 3vw, var(--space-8));
1919
-webkit-appearance: none;
2020
appearance: none;
2121
background: var(--neutral-300);
2222
outline: none;
2323
border-radius: var(--radius-full);
2424
cursor: pointer;
25-
transition: background-color var(--transition-all), box-shadow var(--transition-all);
25+
transition: background-color var(--transition-colors), box-shadow var(--transition-all);
2626
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.3);
2727
}
2828

2929
/* Toggle Knob */
3030
.toggle input[type="checkbox"]::before {
3131
content: "";
32-
width: clamp(1.25rem, 2vw, 2rem);
33-
height: clamp(1.25rem, 2vw, 2rem);
32+
width: clamp(var(--space-5), 2vw, var(--space-8));
33+
height: clamp(var(--space-5), 2vw, var(--space-8));
3434
border-radius: 50%;
35-
background: #fff;
35+
background: var(--neutral-50);
3636
position: absolute;
3737
top: 50%;
38-
left: 0.25rem;
38+
left: var(--space-1);
3939
transform: translateY(-50%);
40-
transition: transform var(--transition-all), background-color var(--transition-all), box-shadow var(--transition-all);
40+
transition: transform var(--transition-transform), background-color var(--transition-colors), box-shadow var(--transition-all);
4141
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
4242
z-index: 1;
4343
}
@@ -49,34 +49,34 @@
4949
}
5050

5151
.toggle input[type="checkbox"]:checked::before {
52-
transform: translate(calc(100% - 0.25rem), -50%);
52+
transform: translate(calc(100% - var(--space-1)), -50%);
5353
background-color: var(--primary);
5454
}
5555

5656
/* Variant Colors */
5757
[data-variant="success"] input[type="checkbox"]:checked {
58-
background-color: rgba(16, 185, 129, 0.2);
58+
background-color: var(--success-light);
5959
}
6060
[data-variant="success"] input[type="checkbox"]:checked::before {
6161
background-color: var(--success);
6262
}
6363

6464
[data-variant="danger"] input[type="checkbox"]:checked {
65-
background-color: rgba(239, 68, 68, 0.2);
65+
background-color: var(--danger-light);
6666
}
6767
[data-variant="danger"] input[type="checkbox"]:checked::before {
6868
background-color: var(--danger);
6969
}
7070

7171
[data-variant="warning"] input[type="checkbox"]:checked {
72-
background-color: rgba(245, 158, 11, 0.2);
72+
background-color: var(--warning-light);
7373
}
7474
[data-variant="warning"] input[type="checkbox"]:checked::before {
7575
background-color: var(--warning);
7676
}
7777

7878
[data-variant="info"] input[type="checkbox"]:checked {
79-
background-color: rgba(59, 130, 246, 0.2);
79+
background-color: var(--info-light);
8080
}
8181
[data-variant="info"] input[type="checkbox"]:checked::before {
8282
background-color: var(--info);
@@ -114,8 +114,19 @@
114114
}
115115

116116
/* Readonly State */
117-
[data-state="readonly"] .toggle {
117+
[data-state="readonly"] input[type="checkbox"] {
118118
pointer-events: none;
119+
cursor: not-allowed;
120+
background-color: var(--neutral-200);
121+
}
122+
[data-state="readonly"] input[type="checkbox"]::before {
123+
background-color: var(--neutral-400);
124+
}
125+
[data-state="readonly"] input[type="checkbox"]:checked {
126+
background-color: var(--neutral-300);
127+
}
128+
[data-state="readonly"] input[type="checkbox"]:checked::before {
129+
background-color: var(--neutral-400);
119130
}
120131

121132
/* Responsive Adjustments */
@@ -125,12 +136,12 @@
125136
}
126137

127138
.toggle input[type="checkbox"] {
128-
width: clamp(2rem, 4vw, 3rem);
129-
height: clamp(1rem, 2vw, 1.5rem);
139+
width: clamp(var(--space-8), 4vw, var(--space-12));
140+
height: clamp(var(--space-4), 2vw, var(--space-6));
130141
}
131142

132143
.toggle input[type="checkbox"]::before {
133-
width: clamp(1rem, 1.5vw, 1.25rem);
134-
height: clamp(1rem, 1.5vw, 1.25rem);
144+
width: clamp(var(--space-4), 1.5vw, var(--space-5));
145+
height: clamp(var(--space-4), 1.5vw, var(--space-5));
135146
}
136147
}

0 commit comments

Comments
 (0)