Skip to content

Commit 6a6046e

Browse files
committed
Close #37
1 parent 1120bd0 commit 6a6046e

File tree

1 file changed

+69
-10
lines changed

1 file changed

+69
-10
lines changed

css/components/dropdown.css

Lines changed: 69 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@
2020
border: none;
2121
border-radius: var(--radius-md);
2222
cursor: pointer;
23-
transition: background-color var(--transition-all);
23+
transition: background-color var(--transition-all), transform 0.3s ease;
2424
white-space: nowrap;
2525
overflow: hidden;
2626
text-overflow: ellipsis;
27+
outline: none;
2728
}
2829

29-
.dropdown-trigger:hover {
30-
background-color: var(--primary-hover);
30+
.dropdown-trigger:focus {
31+
box-shadow: 0 0 0 3px var(--primary-light);
3132
}
3233

3334
/* Dropdown Menu */
@@ -50,7 +51,8 @@
5051
overflow: hidden;
5152
}
5253

53-
/* Show Menu on Hover */
54+
/* Show Menu on Hover or Focus */
55+
.dropdown:focus-within .dropdown-menu,
5456
.dropdown:hover .dropdown-menu {
5557
opacity: 1;
5658
transform: translateY(0);
@@ -69,33 +71,90 @@
6971
text-overflow: ellipsis;
7072
}
7173

74+
.dropdown-item:focus {
75+
background-color: var(--dropdown-hover-bg, var(--neutral-200));
76+
outline: none;
77+
box-shadow: 0 0 0 3px var(--primary-light);
78+
}
79+
7280
/* Hover Effects for Dropdown Items */
7381
.dropdown-item:hover {
7482
background-color: var(--dropdown-hover-bg, var(--neutral-200));
7583
color: var(--dropdown-hover-color, var(--primary));
7684
}
7785

7886
/* Data-Attribute Based Customization */
87+
88+
/* Primary Variant */
7989
.dropdown[data-variant="primary"] .dropdown-trigger {
8090
background-color: var(--primary);
8191
color: #fff;
8292
}
83-
84-
.dropdown[data-variant="secondary"] .dropdown-trigger {
85-
background-color: var(--secondary);
86-
color: #fff;
87-
}
88-
8993
.dropdown[data-variant="primary"] .dropdown-item:hover {
9094
background-color: var(--primary-light);
9195
color: var(--primary);
9296
}
9397

98+
/* Secondary Variant */
99+
.dropdown[data-variant="secondary"] .dropdown-trigger {
100+
background-color: var(--secondary);
101+
color: #fff;
102+
}
94103
.dropdown[data-variant="secondary"] .dropdown-item:hover {
95104
background-color: var(--secondary-light);
96105
color: var(--secondary);
97106
}
98107

108+
/* Warning Variant */
109+
.dropdown[data-variant="warning"] .dropdown-trigger {
110+
background-color: var(--warning);
111+
color: #fff;
112+
}
113+
.dropdown[data-variant="warning"] .dropdown-item:hover {
114+
background-color: var(--warning-light);
115+
color: var(--warning);
116+
}
117+
118+
/* Info Variant */
119+
.dropdown[data-variant="info"] .dropdown-trigger {
120+
background-color: var(--info);
121+
color: #fff;
122+
}
123+
.dropdown[data-variant="info"] .dropdown-item:hover {
124+
background-color: var(--info-light);
125+
color: var(--info);
126+
}
127+
128+
/* Danger Variant */
129+
.dropdown[data-variant="danger"] .dropdown-trigger {
130+
background-color: var(--danger);
131+
color: #fff;
132+
}
133+
.dropdown[data-variant="danger"] .dropdown-item:hover {
134+
background-color: var(--danger-light);
135+
color: var(--danger);
136+
}
137+
138+
/* Success Variant */
139+
.dropdown[data-variant="success"] .dropdown-trigger {
140+
background-color: var(--success);
141+
color: #fff;
142+
}
143+
.dropdown[data-variant="success"] .dropdown-item:hover {
144+
background-color: var(--success-light);
145+
color: var(--success);
146+
}
147+
148+
/* Accent Variant */
149+
.dropdown[data-variant="accent"] .dropdown-trigger {
150+
background-color: var(--accent);
151+
color: #fff;
152+
}
153+
.dropdown[data-variant="accent"] .dropdown-item:hover {
154+
background-color: var(--accent-light);
155+
color: var(--accent);
156+
}
157+
99158
/* Responsive Positioning */
100159
.dropdown[data-position="top"] .dropdown-menu {
101160
top: auto;

0 commit comments

Comments
 (0)