forked from SommAid/20EECE3093C-24SS.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtogglebutton.css
160 lines (132 loc) · 3.64 KB
/
togglebutton.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/**
* Admonition-based toggles
*/
/* Visibility of the target */
.admonition.toggle .admonition-title ~ * {
transition: opacity .3s, height .3s;
}
/* Toggle buttons inside admonitions so we see the title */
.admonition.toggle {
position: relative;
}
/* Titles should cut off earlier to avoid overlapping w/ button */
.admonition.toggle .admonition-title {
padding-right: 25%;
cursor: pointer;
}
/* Hovering will cause a slight shift in color to make it feel interactive */
.admonition.toggle .admonition-title:hover {
box-shadow: inset 0 0 0px 20px rgb(0 0 0 / 1%);
}
/* Hovering will cause a slight shift in color to make it feel interactive */
.admonition.toggle .admonition-title:active {
box-shadow: inset 0 0 0px 20px rgb(0 0 0 / 3%);
}
/* Remove extra whitespace below the admonition title when hidden */
.admonition.toggle-hidden {
padding-bottom: 0;
}
.admonition.toggle-hidden .admonition-title {
margin-bottom: 0;
}
/* hides all the content of a page until de-toggled */
.admonition.toggle-hidden .admonition-title ~ * {
height: 0;
margin: 0;
opacity: 0;
visibility: hidden;
}
/* General button style and position*/
button.toggle-button {
/**
* Background and shape. By default there's no background
* but users can style as they wish
*/
background: none;
border: none;
outline: none;
/* Positioning just inside the admonition title */
position: absolute;
right: 0.5em;
padding: 0px;
border: none;
outline: none;
}
/* Display the toggle hint on wide screens */
@media (min-width: 768px) {
button.toggle-button.toggle-button-hidden:before {
content: attr(data-toggle-hint); /* This will be filled in by JS */
font-size: .8em;
align-self: center;
}
}
/* Icon behavior */
.tb-icon {
transition: transform .2s ease-out;
height: 1.5em;
width: 1.5em;
stroke: currentColor; /* So that we inherit the color of other text */
}
/* The icon should point right when closed, down when open. */
/* Open */
.admonition.toggle button .tb-icon {
transform: rotate(90deg);
}
/* Closed */
.admonition.toggle button.toggle-button-hidden .tb-icon {
transform: rotate(0deg);
}
/* With details toggles, we don't rotate the icon so it points right */
details.toggle-details .tb-icon {
height: 1.4em;
width: 1.4em;
margin-top: 0.1em; /* To center the button vertically */
}
/**
* Details-based toggles.
* In this case, we wrap elements with `.toggle` in a details block.
*/
/* Details blocks */
details.toggle-details {
margin: 1em 0;
}
details.toggle-details summary {
display: flex;
align-items: center;
cursor: pointer;
list-style: none;
border-radius: .2em;
border-left: 3px solid #1976d2;
background-color: rgb(204 204 204 / 10%);
padding: 0.2em 0.7em 0.3em 0.5em; /* Less padding on left because the SVG has left margin */
font-size: 0.9em;
}
details.toggle-details summary:hover {
background-color: rgb(204 204 204 / 20%);
}
details.toggle-details summary:active {
background: rgb(204 204 204 / 28%);
}
.toggle-details__summary-text {
margin-left: 0.2em;
}
details.toggle-details[open] summary {
margin-bottom: .5em;
}
details.toggle-details[open] summary .tb-icon {
transform: rotate(90deg);
}
details.toggle-details[open] summary ~ * {
animation: toggle-fade-in .3s ease-out;
}
@keyframes toggle-fade-in {
from {opacity: 0%;}
to {opacity: 100%;}
}
/* Print rules - we hide all toggle button elements at print */
@media print {
/* Always hide the summary so the button doesn't show up */
details.toggle-details summary {
display: none;
}
}