Skip to content

Commit bea1d9a

Browse files
committed
Dropdown component improve & refactor
1 parent c7487bc commit bea1d9a

File tree

8 files changed

+1356
-3779
lines changed

8 files changed

+1356
-3779
lines changed

dist/cssonly.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

+1,252-3,746
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "cssonly",
33
"description": "",
4-
"version": "0.0.9",
4+
"version": "0.0.10",
55
"main": "dist/cssonly.css",
66
"devDependencies": {
77
"autoprefixer": "^9.8.6",

src/dropdown/index.html

+50-2
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,59 @@
2727
<br />
2828
<br />
2929
<div>
30-
<details class="cssonly-dropdown">
30+
<details class="cssonly-dropdown cssonly-dropdown-right">
31+
<summary>
32+
Open Dropdown
33+
</summary>
34+
<ul class="cssonly-dropdown-menu">
35+
<li><a href="#">Action</a></li>
36+
<li><a href="#">Another action</a></li>
37+
<li><a href="#">Something else here</a></li>
38+
<li class="divider"></li>
39+
<li><a href="#">Separated link</a></li>
40+
</ul>
41+
</details>
42+
</div>
43+
<br />
44+
<br />
45+
<div>
46+
<details class="cssonly-dropdown cssonly-dropdown-dropup">
47+
<summary>
48+
Open Dropdown
49+
</summary>
50+
<ul class="cssonly-dropdown-menu">
51+
<li><a href="#">Action</a></li>
52+
<li><a href="#">Another action</a></li>
53+
<li><a href="#">Something else here</a></li>
54+
<li class="divider"></li>
55+
<li><a href="#">Separated link</a></li>
56+
</ul>
57+
</details>
58+
</div>
59+
<br />
60+
<br />
61+
<div>
62+
<div class="cssonly-dropdown cssonly-dropdown-dropup cssonly-dropdown-onhover">
3163
<summary>
3264
Open Dropdown
3365
</summary>
34-
<ul class="cssonly-dropdown-menu dropdown-menu-right">
66+
<ul class="cssonly-dropdown-menu">
67+
<li><a href="#">Action</a></li>
68+
<li><a href="#">Another action</a></li>
69+
<li><a href="#">Something else here</a></li>
70+
<li class="divider"></li>
71+
<li><a href="#">Separated link</a></li>
72+
</ul>
73+
</div>
74+
</div>
75+
<br />
76+
<br />
77+
<div>
78+
<details class="cssonly-dropdown no-close">
79+
<summary>
80+
Open Dropdown
81+
</summary>
82+
<ul class="cssonly-dropdown-menu">
3583
<li><a href="#">Action</a></li>
3684
<li><a href="#">Another action</a></li>
3785
<li><a href="#">Something else here</a></li>

src/dropdown/style.scss

+49-24
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
.cssonly-dropdown {
2+
--background-color: #fff;
3+
--color: #333;
4+
--hover-color: #262626;
5+
--hover-background-color: #f5f5f5;
26
display: inline-block;
37
position: relative;
48

@@ -11,14 +15,11 @@
1115
white-space: nowrap;
1216
-ms-touch-action: manipulation;
1317
touch-action: manipulation;
14-
-webkit-user-select: none;
15-
-moz-user-select: none;
16-
-ms-user-select: none;
1718
user-select: none;
1819
cursor: pointer;
1920

20-
&::-webkit-details-marker {
21-
display: none;
21+
&::marker {
22+
content: "";
2223
}
2324
}
2425

@@ -35,57 +36,60 @@
3536
font-size: 14px;
3637
text-align: left;
3738
list-style: none;
38-
background-color: #fff;
39-
-webkit-background-clip: padding-box;
39+
background-color: var(--background-color);
4040
background-clip: padding-box;
41-
border: 1px solid #ccc;
4241
border: 1px solid rgba(0, 0, 0, 0.15);
4342
border-radius: 4px;
44-
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.18);
4543
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.18);
4644

47-
&.dropdown-menu-right {
48-
right: 0;
49-
left: auto;
50-
}
51-
52-
&.dropdown-menu-left {
53-
right: auto;
54-
left: 0;
55-
}
56-
5745
> li > a {
5846
display: block;
5947
text-decoration: none;
6048
padding: 3px 20px;
6149
clear: both;
6250
font-weight: 400;
6351
line-height: 1.42857143;
64-
color: #333;
52+
color: var(--color);
6553
white-space: nowrap;
6654

6755
&:focus,
6856
&:hover {
69-
color: #262626;
57+
color: var(--hover-color);
7058
text-decoration: none;
71-
background-color: #f5f5f5;
59+
background-color: var(--hover-background-color);
7260
}
7361
}
7462

7563
.divider {
7664
height: 1px;
7765
margin: 4px 0;
7866
overflow: hidden;
79-
background-color: #e5e5e5;
67+
background-color: rgba(0, 0, 0, 0.15);
8068
}
8169
}
8270

71+
&.cssonly-dropdown-right .cssonly-dropdown-menu {
72+
right: 0;
73+
left: auto;
74+
}
75+
76+
&.cssonly-dropdown-left .cssonly-dropdown-menu {
77+
right: auto;
78+
left: 0;
79+
}
80+
81+
&.cssonly-dropdown-dropup .cssonly-dropdown-menu {
82+
top: unset;
83+
bottom: 100%;
84+
margin: 0 0 2px;
85+
}
86+
8387
&[open] {
8488
.cssonly-dropdown-menu {
8589
display: block;
8690
}
8791

88-
> summary::before {
92+
&:not(.no-close) > summary::before {
8993
position: fixed;
9094
top: 0;
9195
right: 0;
@@ -98,4 +102,25 @@
98102
background: transparent;
99103
}
100104
}
105+
106+
&.cssonly-dropdown-onhover:hover {
107+
.cssonly-dropdown-menu {
108+
display: block !important;
109+
}
110+
111+
&::after {
112+
content: "";
113+
display: block;
114+
position: absolute;
115+
right: 0;
116+
left: 0;
117+
top: 100%;
118+
height: 2px;
119+
}
120+
121+
&.cssonly-dropdown-dropup::after {
122+
top: unset;
123+
bottom: 100%;
124+
}
125+
}
101126
}

src/modal/style.scss

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
max-width: 700px;
3939
margin: 1.75rem auto;
4040
width: 96%;
41+
text-align: start;
4142
pointer-events: auto;
4243
background-color: #fff;
4344
background-clip: padding-box;

src/tabs/style.scss

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
transition: color var(--transition-time);
3030

3131
&:first-of-type::after {
32-
content: '';
32+
content: "";
3333
position: absolute;
3434
height: 1px;
3535
left: 0;
@@ -40,7 +40,7 @@
4040
}
4141

4242
&:last-of-type::after {
43-
content: '';
43+
content: "";
4444
position: absolute;
4545
height: 2px;
4646
left: 0;

src/tooltip/style.scss

-3
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
transform: translate(-50%, -12px);
1010
z-index: 1000;
1111
pointer-events: none;
12-
-webkit-user-select: none;
13-
-moz-user-select: none;
14-
-ms-user-select: none;
1512
user-select: none;
1613
opacity: 0;
1714
transition: opacity 0.35s ease 0.25s;

0 commit comments

Comments
 (0)