Mercurial > minori
comparison dep/fmt/doc/bootstrap/carousel.less @ 343:1faa72660932
*: transfer back to cmake from autotools
autotools just made lots of things more complicated than
they should have and many things broke (i.e. translations)
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Thu, 20 Jun 2024 05:56:06 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
342:adb79bdde329 | 343:1faa72660932 |
---|---|
1 // | |
2 // Carousel | |
3 // -------------------------------------------------- | |
4 | |
5 | |
6 // Wrapper for the slide container and indicators | |
7 .carousel { | |
8 position: relative; | |
9 } | |
10 | |
11 .carousel-inner { | |
12 position: relative; | |
13 overflow: hidden; | |
14 width: 100%; | |
15 | |
16 > .item { | |
17 display: none; | |
18 position: relative; | |
19 .transition(.6s ease-in-out left); | |
20 | |
21 // Account for jankitude on images | |
22 > img, | |
23 > a > img { | |
24 &:extend(.img-responsive); | |
25 line-height: 1; | |
26 } | |
27 | |
28 // WebKit CSS3 transforms for supported devices | |
29 @media all and (transform-3d), (-webkit-transform-3d) { | |
30 .transition-transform(~'0.6s ease-in-out'); | |
31 .backface-visibility(~'hidden'); | |
32 .perspective(1000); | |
33 | |
34 &.next, | |
35 &.active.right { | |
36 .translate3d(100%, 0, 0); | |
37 left: 0; | |
38 } | |
39 &.prev, | |
40 &.active.left { | |
41 .translate3d(-100%, 0, 0); | |
42 left: 0; | |
43 } | |
44 &.next.left, | |
45 &.prev.right, | |
46 &.active { | |
47 .translate3d(0, 0, 0); | |
48 left: 0; | |
49 } | |
50 } | |
51 } | |
52 | |
53 > .active, | |
54 > .next, | |
55 > .prev { | |
56 display: block; | |
57 } | |
58 | |
59 > .active { | |
60 left: 0; | |
61 } | |
62 | |
63 > .next, | |
64 > .prev { | |
65 position: absolute; | |
66 top: 0; | |
67 width: 100%; | |
68 } | |
69 | |
70 > .next { | |
71 left: 100%; | |
72 } | |
73 > .prev { | |
74 left: -100%; | |
75 } | |
76 > .next.left, | |
77 > .prev.right { | |
78 left: 0; | |
79 } | |
80 | |
81 > .active.left { | |
82 left: -100%; | |
83 } | |
84 > .active.right { | |
85 left: 100%; | |
86 } | |
87 | |
88 } | |
89 | |
90 // Left/right controls for nav | |
91 // --------------------------- | |
92 | |
93 .carousel-control { | |
94 position: absolute; | |
95 top: 0; | |
96 left: 0; | |
97 bottom: 0; | |
98 width: @carousel-control-width; | |
99 .opacity(@carousel-control-opacity); | |
100 font-size: @carousel-control-font-size; | |
101 color: @carousel-control-color; | |
102 text-align: center; | |
103 text-shadow: @carousel-text-shadow; | |
104 // We can't have this transition here because WebKit cancels the carousel | |
105 // animation if you trip this while in the middle of another animation. | |
106 | |
107 // Set gradients for backgrounds | |
108 &.left { | |
109 #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); | |
110 } | |
111 &.right { | |
112 left: auto; | |
113 right: 0; | |
114 #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); | |
115 } | |
116 | |
117 // Hover/focus state | |
118 &:hover, | |
119 &:focus { | |
120 outline: 0; | |
121 color: @carousel-control-color; | |
122 text-decoration: none; | |
123 .opacity(.9); | |
124 } | |
125 | |
126 // Toggles | |
127 .icon-prev, | |
128 .icon-next, | |
129 .glyphicon-chevron-left, | |
130 .glyphicon-chevron-right { | |
131 position: absolute; | |
132 top: 50%; | |
133 z-index: 5; | |
134 display: inline-block; | |
135 } | |
136 .icon-prev, | |
137 .glyphicon-chevron-left { | |
138 left: 50%; | |
139 margin-left: -10px; | |
140 } | |
141 .icon-next, | |
142 .glyphicon-chevron-right { | |
143 right: 50%; | |
144 margin-right: -10px; | |
145 } | |
146 .icon-prev, | |
147 .icon-next { | |
148 width: 20px; | |
149 height: 20px; | |
150 margin-top: -10px; | |
151 line-height: 1; | |
152 font-family: serif; | |
153 } | |
154 | |
155 | |
156 .icon-prev { | |
157 &:before { | |
158 content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) | |
159 } | |
160 } | |
161 .icon-next { | |
162 &:before { | |
163 content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) | |
164 } | |
165 } | |
166 } | |
167 | |
168 // Optional indicator pips | |
169 // | |
170 // Add an unordered list with the following class and add a list item for each | |
171 // slide your carousel holds. | |
172 | |
173 .carousel-indicators { | |
174 position: absolute; | |
175 bottom: 10px; | |
176 left: 50%; | |
177 z-index: 15; | |
178 width: 60%; | |
179 margin-left: -30%; | |
180 padding-left: 0; | |
181 list-style: none; | |
182 text-align: center; | |
183 | |
184 li { | |
185 display: inline-block; | |
186 width: 10px; | |
187 height: 10px; | |
188 margin: 1px; | |
189 text-indent: -999px; | |
190 border: 1px solid @carousel-indicator-border-color; | |
191 border-radius: 10px; | |
192 cursor: pointer; | |
193 | |
194 // IE8-9 hack for event handling | |
195 // | |
196 // Internet Explorer 8-9 does not support clicks on elements without a set | |
197 // `background-color`. We cannot use `filter` since that's not viewed as a | |
198 // background color by the browser. Thus, a hack is needed. | |
199 // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer | |
200 // | |
201 // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we | |
202 // set alpha transparency for the best results possible. | |
203 background-color: #000 \9; // IE8 | |
204 background-color: rgba(0,0,0,0); // IE9 | |
205 } | |
206 .active { | |
207 margin: 0; | |
208 width: 12px; | |
209 height: 12px; | |
210 background-color: @carousel-indicator-active-bg; | |
211 } | |
212 } | |
213 | |
214 // Optional captions | |
215 // ----------------------------- | |
216 // Hidden by default for smaller viewports | |
217 .carousel-caption { | |
218 position: absolute; | |
219 left: 15%; | |
220 right: 15%; | |
221 bottom: 20px; | |
222 z-index: 10; | |
223 padding-top: 20px; | |
224 padding-bottom: 20px; | |
225 color: @carousel-caption-color; | |
226 text-align: center; | |
227 text-shadow: @carousel-text-shadow; | |
228 & .btn { | |
229 text-shadow: none; // No shadow for button elements in carousel-caption | |
230 } | |
231 } | |
232 | |
233 | |
234 // Scale up controls for tablets and up | |
235 @media screen and (min-width: @screen-sm-min) { | |
236 | |
237 // Scale up the controls a smidge | |
238 .carousel-control { | |
239 .glyphicon-chevron-left, | |
240 .glyphicon-chevron-right, | |
241 .icon-prev, | |
242 .icon-next { | |
243 width: 30px; | |
244 height: 30px; | |
245 margin-top: -15px; | |
246 font-size: 30px; | |
247 } | |
248 .glyphicon-chevron-left, | |
249 .icon-prev { | |
250 margin-left: -15px; | |
251 } | |
252 .glyphicon-chevron-right, | |
253 .icon-next { | |
254 margin-right: -15px; | |
255 } | |
256 } | |
257 | |
258 // Show and left align the captions | |
259 .carousel-caption { | |
260 left: 20%; | |
261 right: 20%; | |
262 padding-bottom: 30px; | |
263 } | |
264 | |
265 // Move up the indicators | |
266 .carousel-indicators { | |
267 bottom: 20px; | |
268 } | |
269 } |