2
0
mirror of https://github.com/erikflowers/weather-icons.git synced 2025-10-12 07:22:11 -06:00

updating bootstrap, testing layout

This commit is contained in:
Erik Flowers 2015-07-31 21:11:08 -07:00
parent 63dde3eb9b
commit 0dcf79e13d
100 changed files with 13078 additions and 4808 deletions

View File

@ -1,8 +1,8 @@
direction-up, f058
direction-up-right, f057
direction-right, f04d
direction-down-right, f088
direction-down, f044
direction-down-left, f043
direction-down-right, f088
direction-left, f048
direction-right, f04d
direction-up, f058
direction-up-left, f087
direction-up-right, f057
direction-up-left, f087
1 direction-down direction-up f044 f058
1 direction-up f058
2 direction-up-right f057
3 direction-right f04d
4 direction-down-right f088
5 direction-down direction-down f044 f044
6 direction-down-left direction-down-left f043 f043
direction-down-right f088
7 direction-left direction-left f048 f048
8 direction-right direction-up-left f04d f087
direction-up f058
direction-up-left f087
direction-up-right f057

View File

@ -1,17 +1,4 @@
moon-full, f0a3
moon-new, f095
moon-waning-crescent-1, f0ab
moon-waning-crescent-2, f0ac
moon-waning-crescent-3, f0ad
moon-waning-crescent-4, f0ae
moon-waning-crescent-5, f0af
moon-waning-crescent-6, f0b0
moon-waning-gibbous-1, f0a4
moon-waning-gibbous-2, f0a5
moon-waning-gibbous-3, f0a6
moon-waning-gibbous-4, f0a7
moon-waning-gibbous-5, f0a8
moon-waning-gibbous-6, f0a9
moon-waxing-cresent-1, f096
moon-waxing-cresent-2, f097
moon-waxing-cresent-3, f098
@ -23,4 +10,17 @@ moon-waxing-gibbous-2, f09e
moon-waxing-gibbous-3, f09f
moon-waxing-gibbous-4, f0a0
moon-waxing-gibbous-5, f0a1
moon-waxing-gibbous-6, f0a2
moon-waxing-gibbous-6, f0a2
moon-full, f0a3
moon-waning-gibbous-1, f0a4
moon-waning-gibbous-2, f0a5
moon-waning-gibbous-3, f0a6
moon-waning-gibbous-4, f0a7
moon-waning-gibbous-5, f0a8
moon-waning-gibbous-6, f0a9
moon-waning-crescent-1, f0ab
moon-waning-crescent-2, f0ac
moon-waning-crescent-3, f0ad
moon-waning-crescent-4, f0ae
moon-waning-crescent-5, f0af
moon-waning-crescent-6, f0b0
1 moon-full moon-new f0a3 f095
moon-full f0a3
1 moon-new moon-new f095 f095
moon-waning-crescent-1 f0ab
moon-waning-crescent-2 f0ac
moon-waning-crescent-3 f0ad
moon-waning-crescent-4 f0ae
moon-waning-crescent-5 f0af
moon-waning-crescent-6 f0b0
moon-waning-gibbous-1 f0a4
moon-waning-gibbous-2 f0a5
moon-waning-gibbous-3 f0a6
moon-waning-gibbous-4 f0a7
moon-waning-gibbous-5 f0a8
moon-waning-gibbous-6 f0a9
2 moon-waxing-cresent-1 moon-waxing-cresent-1 f096 f096
3 moon-waxing-cresent-2 moon-waxing-cresent-2 f097 f097
4 moon-waxing-cresent-3 moon-waxing-cresent-3 f098 f098
10 moon-waxing-gibbous-3 moon-waxing-gibbous-3 f09f f09f
11 moon-waxing-gibbous-4 moon-waxing-gibbous-4 f0a0 f0a0
12 moon-waxing-gibbous-5 moon-waxing-gibbous-5 f0a1 f0a1
13 moon-waxing-gibbous-6 moon-waxing-gibbous-6 f0a2 f0a2
14 moon-full f0a3
15 moon-waning-gibbous-1 f0a4
16 moon-waning-gibbous-2 f0a5
17 moon-waning-gibbous-3 f0a6
18 moon-waning-gibbous-4 f0a7
19 moon-waning-gibbous-5 f0a8
20 moon-waning-gibbous-6 f0a9
21 moon-waning-crescent-1 f0ab
22 moon-waning-crescent-2 f0ac
23 moon-waning-crescent-3 f0ad
24 moon-waning-crescent-4 f0ae
25 moon-waning-crescent-5 f0af
26 moon-waning-crescent-6 f0b0

110
_builder/csv/temp.csv Normal file
View File

@ -0,0 +1,110 @@
_reserved_, f049
alien, f075
celsius, f03c
cloud, f041
cloud-down, f03d
cloud-refresh, f03e
cloud-up, f040
cloudy, f013
cloudy-gusts, f011
cloudy-windy, f012
day-cloudy, f002
day-cloudy-gusts, f000
day-cloudy-windy, f001
day-fog, f003
day-hail, f004
day-haze, f0b6
day-lightning, f005
day-rain, f008
day-rain-mix, f006
day-rain-wind, f007
day-showers, f009
day-sleet, f0b2
day-sleet-storm, f068
day-snow, f00a
day-snow-thunderstorm, f06b
day-snow-wind, f065
day-sprinkle, f00b
day-storm-showers, f00e
day-sunny, f00d
day-sunny-overcast, f00c
day-thunderstorm, f010
day-windy, f085
degrees, f042
dust, f063
fahrenheit, f045
fog, f014
hail, f015
horizon, f047
horizon-alt, f046
hot, f072
hurricane, f073
lightning, f016
lunar-eclipse, f070
meteor, f071
moon-3rd-quarter, f0aa
moon-first-quarter, f09c
night-alt-cloudy, f086
night-alt-cloudy-gusts, f022
night-alt-cloudy-windy, f023
night-alt-hail, f024
night-alt-lightning, f025
night-alt-rain, f028
night-alt-rain-mix, f026
night-alt-rain-wind, f027
night-alt-showers, f029
night-alt-sleet, f0b4
night-alt-sleet-storm, f06a
night-alt-snow, f02a
night-alt-snow-thunderstorm, f06d
night-alt-snow-wind, f067
night-alt-sprinkle, f02b
night-alt-storm-showers, f02c
night-alt-thunderstorm, f02d
night-clear, f02e
night-cloudy, f031
night-cloudy-gusts, f02f
night-cloudy-windy, f030
night-fog, f04a
night-hail, f032
night-lightning, f033
night-partly-cloudy, f083
night-rain, f036
night-rain-mix, f034
night-rain-wind, f035
night-showers, f037
night-sleet, f0b3
night-sleet-storm, f069
night-snow, f038
night-snow-thunderstorm, f06c
night-snow-wind, f066
night-sprinkle, f039
night-storm-showers, f03a
night-thunderstorm, f03b
rain, f019
rain-mix, f017
rain-wind, f018
refresh, f04c
refresh-alt, f04b
showers, f01a
sleet, f0b5
smog, f074
smoke, f062
snow, f01b
snow-wind, f064
snowflake-cold, f076
solar-eclipse, f06e
sprinkle, f01c
sprinkles, f04e
stars, f077
storm-showers, f01d
strong-wind, f050
sunrise, f051
sunset, f052
thermometer, f055
thermometer-exterior, f053
thermometer-internal, f054
thunderstorm, f01e
tornado, f056
umbrella, f084
windy, f021;
1 _reserved_ f049
2 alien f075
3 celsius f03c
4 cloud f041
5 cloud-down f03d
6 cloud-refresh f03e
7 cloud-up f040
8 cloudy f013
9 cloudy-gusts f011
10 cloudy-windy f012
11 day-cloudy f002
12 day-cloudy-gusts f000
13 day-cloudy-windy f001
14 day-fog f003
15 day-hail f004
16 day-haze f0b6
17 day-lightning f005
18 day-rain f008
19 day-rain-mix f006
20 day-rain-wind f007
21 day-showers f009
22 day-sleet f0b2
23 day-sleet-storm f068
24 day-snow f00a
25 day-snow-thunderstorm f06b
26 day-snow-wind f065
27 day-sprinkle f00b
28 day-storm-showers f00e
29 day-sunny f00d
30 day-sunny-overcast f00c
31 day-thunderstorm f010
32 day-windy f085
33 degrees f042
34 dust f063
35 fahrenheit f045
36 fog f014
37 hail f015
38 horizon f047
39 horizon-alt f046
40 hot f072
41 hurricane f073
42 lightning f016
43 lunar-eclipse f070
44 meteor f071
45 moon-3rd-quarter f0aa
46 moon-first-quarter f09c
47 night-alt-cloudy f086
48 night-alt-cloudy-gusts f022
49 night-alt-cloudy-windy f023
50 night-alt-hail f024
51 night-alt-lightning f025
52 night-alt-rain f028
53 night-alt-rain-mix f026
54 night-alt-rain-wind f027
55 night-alt-showers f029
56 night-alt-sleet f0b4
57 night-alt-sleet-storm f06a
58 night-alt-snow f02a
59 night-alt-snow-thunderstorm f06d
60 night-alt-snow-wind f067
61 night-alt-sprinkle f02b
62 night-alt-storm-showers f02c
63 night-alt-thunderstorm f02d
64 night-clear f02e
65 night-cloudy f031
66 night-cloudy-gusts f02f
67 night-cloudy-windy f030
68 night-fog f04a
69 night-hail f032
70 night-lightning f033
71 night-partly-cloudy f083
72 night-rain f036
73 night-rain-mix f034
74 night-rain-wind f035
75 night-showers f037
76 night-sleet f0b3
77 night-sleet-storm f069
78 night-snow f038
79 night-snow-thunderstorm f06c
80 night-snow-wind f066
81 night-sprinkle f039
82 night-storm-showers f03a
83 night-thunderstorm f03b
84 rain f019
85 rain-mix f017
86 rain-wind f018
87 refresh f04c
88 refresh-alt f04b
89 showers f01a
90 sleet f0b5
91 smog f074
92 smoke f062
93 snow f01b
94 snow-wind f064
95 snowflake-cold f076
96 solar-eclipse f06e
97 sprinkle f01c
98 sprinkles f04e
99 stars f077
100 storm-showers f01d
101 strong-wind f050
102 sunrise f051
103 sunset f052
104 thermometer f055
105 thermometer-exterior f053
106 thermometer-internal f054
107 thunderstorm f01e
108 tornado f056
109 umbrella f084
110 windy f021;

View File

@ -1,7 +1,4 @@
time-1, f08a
time-10, f093
time-11, f094
time-12, f089
time-2, f08b
time-3, f08c
time-4, f08d
@ -9,4 +6,7 @@ time-5, f08e
time-6, f08f
time-7, f090
time-8, f091
time-9, f092
time-9, f092
time-10, f093
time-11, f094
time-12, f089
1 time-1 f08a
time-10 f093
time-11 f094
time-12 f089
2 time-2 f08b
3 time-3 f08c
4 time-4 f08d
6 time-6 f08f
7 time-7 f090
8 time-8 f091
9 time-9 f092
10 time-10 f093
11 time-11 f094
12 time-12 f089

File diff suppressed because it is too large Load Diff

View File

@ -11,404 +11,431 @@
<p>this</p><i class="wi wi-wind-default point-120-deg"></i>
<p>this</p>
</section>
<section class="content container iconExamples">
<div class="icon-wrap">
<div class="icon">&#xf08a;</div>
<div class="icon-name">wi-time-1</div>
<div class="icon_unicode">f08a </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf093;</div>
<div class="icon-name">wi-time-10</div>
<div class="icon_unicode">f093 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf094;</div>
<div class="icon-name">wi-time-11</div>
<div class="icon_unicode">f094 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf089;</div>
<div class="icon-name">wi-time-12</div>
<div class="icon_unicode">f089 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08b;</div>
<div class="icon-name">wi-time-2</div>
<div class="icon_unicode">f08b </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08c;</div>
<div class="icon-name">wi-time-3</div>
<div class="icon_unicode">f08c </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08d;</div>
<div class="icon-name">wi-time-4</div>
<div class="icon_unicode">f08d </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08e;</div>
<div class="icon-name">wi-time-5</div>
<div class="icon_unicode">f08e </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08f;</div>
<div class="icon-name">wi-time-6</div>
<div class="icon_unicode">f08f </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf090;</div>
<div class="icon-name">wi-time-7</div>
<div class="icon_unicode">f090 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf091;</div>
<div class="icon-name">wi-time-8</div>
<div class="icon_unicode">f091 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf092;</div>
<div class="icon-name">wi-time-9</div>
<div class="icon_unicode">f092 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0b7;</div>
<div class="icon-name">wi-wind-beaufort-0</div>
<div class="icon_unicode">f0b7 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0b8;</div>
<div class="icon-name">wi-wind-beaufort-1</div>
<div class="icon_unicode">f0b8 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0b9;</div>
<div class="icon-name">wi-wind-beaufort-2</div>
<div class="icon_unicode">f0b9 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ba;</div>
<div class="icon-name">wi-wind-beaufort-3</div>
<div class="icon_unicode">f0ba </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0bb;</div>
<div class="icon-name">wi-wind-beaufort-4</div>
<div class="icon_unicode">f0bb </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0bc;</div>
<div class="icon-name">wi-wind-beaufort-5</div>
<div class="icon_unicode">f0bc </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0bd;</div>
<div class="icon-name">wi-wind-beaufort-6</div>
<div class="icon_unicode">f0bd </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0be;</div>
<div class="icon-name">wi-wind-beaufort-7</div>
<div class="icon_unicode">f0be </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0bf;</div>
<div class="icon-name">wi-wind-beaufort-8</div>
<div class="icon_unicode">f0bf </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0c0;</div>
<div class="icon-name">wi-wind-beaufort-9</div>
<div class="icon_unicode">f0c0 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0c1;</div>
<div class="icon-name">wi-wind-beaufort-10</div>
<div class="icon_unicode">f0c1 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0c2;</div>
<div class="icon-name">wi-wind-beaufort-11</div>
<div class="icon_unicode">f0c2 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0c3;</div>
<div class="icon-name">wi-wind-beaufort-12</div>
<div class="icon_unicode">f0c3 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a3;</div>
<div class="icon-name">wi-moon-full</div>
<div class="icon_unicode">f0a3 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf095;</div>
<div class="icon-name">wi-moon-new</div>
<div class="icon_unicode">f095 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ab;</div>
<div class="icon-name">wi-moon-waning-crescent-1</div>
<div class="icon_unicode">f0ab </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ac;</div>
<div class="icon-name">wi-moon-waning-crescent-2</div>
<div class="icon_unicode">f0ac </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ad;</div>
<div class="icon-name">wi-moon-waning-crescent-3</div>
<div class="icon_unicode">f0ad </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ae;</div>
<div class="icon-name">wi-moon-waning-crescent-4</div>
<div class="icon_unicode">f0ae </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0af;</div>
<div class="icon-name">wi-moon-waning-crescent-5</div>
<div class="icon_unicode">f0af </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0b0;</div>
<div class="icon-name">wi-moon-waning-crescent-6</div>
<div class="icon_unicode">f0b0 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a4;</div>
<div class="icon-name">wi-moon-waning-gibbous-1</div>
<div class="icon_unicode">f0a4 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a5;</div>
<div class="icon-name">wi-moon-waning-gibbous-2</div>
<div class="icon_unicode">f0a5 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a6;</div>
<div class="icon-name">wi-moon-waning-gibbous-3</div>
<div class="icon_unicode">f0a6 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a7;</div>
<div class="icon-name">wi-moon-waning-gibbous-4</div>
<div class="icon_unicode">f0a7 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a8;</div>
<div class="icon-name">wi-moon-waning-gibbous-5</div>
<div class="icon_unicode">f0a8 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a9;</div>
<div class="icon-name">wi-moon-waning-gibbous-6</div>
<div class="icon_unicode">f0a9 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf096;</div>
<div class="icon-name">wi-moon-waxing-cresent-1</div>
<div class="icon_unicode">f096 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf097;</div>
<div class="icon-name">wi-moon-waxing-cresent-2</div>
<div class="icon_unicode">f097 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf098;</div>
<div class="icon-name">wi-moon-waxing-cresent-3</div>
<div class="icon_unicode">f098 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf099;</div>
<div class="icon-name">wi-moon-waxing-cresent-4</div>
<div class="icon_unicode">f099 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09a;</div>
<div class="icon-name">wi-moon-waxing-cresent-5</div>
<div class="icon_unicode">f09a </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09b;</div>
<div class="icon-name">wi-moon-waxing-cresent-6</div>
<div class="icon_unicode">f09b </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09d;</div>
<div class="icon-name">wi-moon-waxing-gibbous-1</div>
<div class="icon_unicode">f09d </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09e;</div>
<div class="icon-name">wi-moon-waxing-gibbous-2</div>
<div class="icon_unicode">f09e </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09f;</div>
<div class="icon-name">wi-moon-waxing-gibbous-3</div>
<div class="icon_unicode">f09f </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a0;</div>
<div class="icon-name">wi-moon-waxing-gibbous-4</div>
<div class="icon_unicode">f0a0 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a1;</div>
<div class="icon-name">wi-moon-waxing-gibbous-5</div>
<div class="icon_unicode">f0a1 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a2;</div>
<div class="icon-name">wi-moon-waxing-gibbous-6</div>
<div class="icon_unicode">f0a2 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf044;</div>
<div class="icon-name">wi-direction-down</div>
<div class="icon_unicode">f044 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf043;</div>
<div class="icon-name">wi-direction-down-left</div>
<div class="icon_unicode">f043 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf088;</div>
<div class="icon-name">wi-direction-down-right</div>
<div class="icon_unicode">f088 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf048;</div>
<div class="icon-name">wi-direction-left</div>
<div class="icon_unicode">f048 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf04d;</div>
<div class="icon-name">wi-direction-right</div>
<div class="icon_unicode">f04d </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf058;</div>
<div class="icon-name">wi-direction-up</div>
<div class="icon_unicode">f058 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf087;</div>
<div class="icon-name">wi-direction-up-left</div>
<div class="icon_unicode">f087 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf057;</div>
<div class="icon-name">wi-direction-up-right</div>
<div class="icon_unicode">f057 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-0-deg"></div>
<div class="icon-name">wi-wind-default.point-0-deg</div>
<div class="icon-name">DEFAULT</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-0-deg"></div>
<div class="icon-name">wi-wind-default.point-0-deg</div>
<div class="icon-name">N</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-23-deg"></div>
<div class="icon-name">wi-wind-default.point-23-deg</div>
<div class="icon-name">NNE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-45-deg"></div>
<div class="icon-name">wi-wind-default.point-45-deg</div>
<div class="icon-name">NE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-68-deg"></div>
<div class="icon-name">wi-wind-default.point-68-deg</div>
<div class="icon-name">ENE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-90-deg"></div>
<div class="icon-name">wi-wind-default.point-90-deg</div>
<div class="icon-name">E</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-113-deg"></div>
<div class="icon-name">wi-wind-default.point-113-deg</div>
<div class="icon-name">ESE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-135-deg"></div>
<div class="icon-name">wi-wind-default.point-135-deg</div>
<div class="icon-name">SE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-158-deg"></div>
<div class="icon-name">wi-wind-default.point-158-deg</div>
<div class="icon-name">SSE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-180-deg"></div>
<div class="icon-name">wi-wind-default.point-180-deg</div>
<div class="icon-name">S</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-203-deg"></div>
<div class="icon-name">wi-wind-default.point-203-deg</div>
<div class="icon-name">SSW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-225-deg"></div>
<div class="icon-name">wi-wind-default.point-225-deg</div>
<div class="icon-name">SW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-248-deg"></div>
<div class="icon-name">wi-wind-default.point-248-deg</div>
<div class="icon-name">WSW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-270-deg"></div>
<div class="icon-name">wi-wind-default.point-270-deg</div>
<div class="icon-name">W</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-293-deg"></div>
<div class="icon-name">wi-wind-default.point-293-deg</div>
<div class="icon-name">WNW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-313-deg"></div>
<div class="icon-name">wi-wind-default.point-313-deg</div>
<div class="icon-name">NW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-336-deg"></div>
<div class="icon-name">wi-wind-default.point-336-deg</div>
<div class="icon-name">NNW</div>
<div class="icon_unicode">f0b1 </div>
</div>
</section>
<div class="container">
<div class="row">
<div class="col-sm-12">
<h1>Time</h1>
<div class="row">
<div class="icon-wrap">
<div class="icon">&#xf08a;</div>
<div class="icon-name">wi-time-1</div>
<div class="icon_unicode">f08a </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08b;</div>
<div class="icon-name">wi-time-2</div>
<div class="icon_unicode">f08b </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08c;</div>
<div class="icon-name">wi-time-3</div>
<div class="icon_unicode">f08c </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08d;</div>
<div class="icon-name">wi-time-4</div>
<div class="icon_unicode">f08d </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08e;</div>
<div class="icon-name">wi-time-5</div>
<div class="icon_unicode">f08e </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf08f;</div>
<div class="icon-name">wi-time-6</div>
<div class="icon_unicode">f08f </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf090;</div>
<div class="icon-name">wi-time-7</div>
<div class="icon_unicode">f090 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf091;</div>
<div class="icon-name">wi-time-8</div>
<div class="icon_unicode">f091 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf092;</div>
<div class="icon-name">wi-time-9</div>
<div class="icon_unicode">f092 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf093;</div>
<div class="icon-name">wi-time-10</div>
<div class="icon_unicode">f093 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf094;</div>
<div class="icon-name">wi-time-11</div>
<div class="icon_unicode">f094 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf089;</div>
<div class="icon-name">wi-time-12</div>
<div class="icon_unicode">f089 </div>
</div>
</div>
</div>
<div class="col-sm-12">
<h1>Beaufort</h1>
<div class="row">
<div class="icon-wrap">
<div class="icon">&#xf0b7;</div>
<div class="icon-name">wi-wind-beaufort-0</div>
<div class="icon_unicode">f0b7 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0b8;</div>
<div class="icon-name">wi-wind-beaufort-1</div>
<div class="icon_unicode">f0b8 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0b9;</div>
<div class="icon-name">wi-wind-beaufort-2</div>
<div class="icon_unicode">f0b9 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ba;</div>
<div class="icon-name">wi-wind-beaufort-3</div>
<div class="icon_unicode">f0ba </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0bb;</div>
<div class="icon-name">wi-wind-beaufort-4</div>
<div class="icon_unicode">f0bb </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0bc;</div>
<div class="icon-name">wi-wind-beaufort-5</div>
<div class="icon_unicode">f0bc </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0bd;</div>
<div class="icon-name">wi-wind-beaufort-6</div>
<div class="icon_unicode">f0bd </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0be;</div>
<div class="icon-name">wi-wind-beaufort-7</div>
<div class="icon_unicode">f0be </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0bf;</div>
<div class="icon-name">wi-wind-beaufort-8</div>
<div class="icon_unicode">f0bf </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0c0;</div>
<div class="icon-name">wi-wind-beaufort-9</div>
<div class="icon_unicode">f0c0 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0c1;</div>
<div class="icon-name">wi-wind-beaufort-10</div>
<div class="icon_unicode">f0c1 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0c2;</div>
<div class="icon-name">wi-wind-beaufort-11</div>
<div class="icon_unicode">f0c2 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0c3;</div>
<div class="icon-name">wi-wind-beaufort-12</div>
<div class="icon_unicode">f0c3 </div>
</div>
</div>
</div>
<div class="col-sm-12">
<h1>Moons</h1>
<div class="row">
<div class="icon-wrap">
<div class="icon">&#xf095;</div>
<div class="icon-name">wi-moon-new</div>
<div class="icon_unicode">f095 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf096;</div>
<div class="icon-name">wi-moon-waxing-cresent-1</div>
<div class="icon_unicode">f096 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf097;</div>
<div class="icon-name">wi-moon-waxing-cresent-2</div>
<div class="icon_unicode">f097 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf098;</div>
<div class="icon-name">wi-moon-waxing-cresent-3</div>
<div class="icon_unicode">f098 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf099;</div>
<div class="icon-name">wi-moon-waxing-cresent-4</div>
<div class="icon_unicode">f099 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09a;</div>
<div class="icon-name">wi-moon-waxing-cresent-5</div>
<div class="icon_unicode">f09a </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09b;</div>
<div class="icon-name">wi-moon-waxing-cresent-6</div>
<div class="icon_unicode">f09b </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09d;</div>
<div class="icon-name">wi-moon-waxing-gibbous-1</div>
<div class="icon_unicode">f09d </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09e;</div>
<div class="icon-name">wi-moon-waxing-gibbous-2</div>
<div class="icon_unicode">f09e </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf09f;</div>
<div class="icon-name">wi-moon-waxing-gibbous-3</div>
<div class="icon_unicode">f09f </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a0;</div>
<div class="icon-name">wi-moon-waxing-gibbous-4</div>
<div class="icon_unicode">f0a0 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a1;</div>
<div class="icon-name">wi-moon-waxing-gibbous-5</div>
<div class="icon_unicode">f0a1 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a2;</div>
<div class="icon-name">wi-moon-waxing-gibbous-6</div>
<div class="icon_unicode">f0a2 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a3;</div>
<div class="icon-name">wi-moon-full</div>
<div class="icon_unicode">f0a3 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a4;</div>
<div class="icon-name">wi-moon-waning-gibbous-1</div>
<div class="icon_unicode">f0a4 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a5;</div>
<div class="icon-name">wi-moon-waning-gibbous-2</div>
<div class="icon_unicode">f0a5 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a6;</div>
<div class="icon-name">wi-moon-waning-gibbous-3</div>
<div class="icon_unicode">f0a6 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a7;</div>
<div class="icon-name">wi-moon-waning-gibbous-4</div>
<div class="icon_unicode">f0a7 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a8;</div>
<div class="icon-name">wi-moon-waning-gibbous-5</div>
<div class="icon_unicode">f0a8 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0a9;</div>
<div class="icon-name">wi-moon-waning-gibbous-6</div>
<div class="icon_unicode">f0a9 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ab;</div>
<div class="icon-name">wi-moon-waning-crescent-1</div>
<div class="icon_unicode">f0ab </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ac;</div>
<div class="icon-name">wi-moon-waning-crescent-2</div>
<div class="icon_unicode">f0ac </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ad;</div>
<div class="icon-name">wi-moon-waning-crescent-3</div>
<div class="icon_unicode">f0ad </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0ae;</div>
<div class="icon-name">wi-moon-waning-crescent-4</div>
<div class="icon_unicode">f0ae </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0af;</div>
<div class="icon-name">wi-moon-waning-crescent-5</div>
<div class="icon_unicode">f0af </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf0b0;</div>
<div class="icon-name">wi-moon-waning-crescent-6</div>
<div class="icon_unicode">f0b0 </div>
</div>
</div>
</div>
<div class="col-sm-12">
<h1>Directions</h1>
<div class="row">
<div class="icon-wrap">
<div class="icon">&#xf058;</div>
<div class="icon-name">wi-direction-up</div>
<div class="icon_unicode">f058 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf057;</div>
<div class="icon-name">wi-direction-up-right</div>
<div class="icon_unicode">f057 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf04d;</div>
<div class="icon-name">wi-direction-right</div>
<div class="icon_unicode">f04d </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf088;</div>
<div class="icon-name">wi-direction-down-right</div>
<div class="icon_unicode">f088 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf044;</div>
<div class="icon-name">wi-direction-down</div>
<div class="icon_unicode">f044 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf043;</div>
<div class="icon-name">wi-direction-down-left</div>
<div class="icon_unicode">f043 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf048;</div>
<div class="icon-name">wi-direction-left</div>
<div class="icon_unicode">f048 </div>
</div>
<div class="icon-wrap">
<div class="icon">&#xf087;</div>
<div class="icon-name">wi-direction-up-left</div>
<div class="icon_unicode">f087 </div>
</div>
</div>
</div>
<div class="col-sm-12">
<h1>Wind</h1>
<div class="row">
<div class="icon-wrap">
<div class="wi wi-wind-default point-0-deg"></div>
<div class="icon-name">wi-wind-default.point-0-deg</div>
<div class="icon-name">DEFAULT</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-0-deg"></div>
<div class="icon-name">wi-wind-default.point-0-deg</div>
<div class="icon-name">N</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-23-deg"></div>
<div class="icon-name">wi-wind-default.point-23-deg</div>
<div class="icon-name">NNE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-45-deg"></div>
<div class="icon-name">wi-wind-default.point-45-deg</div>
<div class="icon-name">NE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-68-deg"></div>
<div class="icon-name">wi-wind-default.point-68-deg</div>
<div class="icon-name">ENE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-90-deg"></div>
<div class="icon-name">wi-wind-default.point-90-deg</div>
<div class="icon-name">E</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-113-deg"></div>
<div class="icon-name">wi-wind-default.point-113-deg</div>
<div class="icon-name">ESE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-135-deg"></div>
<div class="icon-name">wi-wind-default.point-135-deg</div>
<div class="icon-name">SE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-158-deg"></div>
<div class="icon-name">wi-wind-default.point-158-deg</div>
<div class="icon-name">SSE</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-180-deg"></div>
<div class="icon-name">wi-wind-default.point-180-deg</div>
<div class="icon-name">S</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-203-deg"></div>
<div class="icon-name">wi-wind-default.point-203-deg</div>
<div class="icon-name">SSW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-225-deg"></div>
<div class="icon-name">wi-wind-default.point-225-deg</div>
<div class="icon-name">SW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-248-deg"></div>
<div class="icon-name">wi-wind-default.point-248-deg</div>
<div class="icon-name">WSW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-270-deg"></div>
<div class="icon-name">wi-wind-default.point-270-deg</div>
<div class="icon-name">W</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-293-deg"></div>
<div class="icon-name">wi-wind-default.point-293-deg</div>
<div class="icon-name">WNW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-313-deg"></div>
<div class="icon-name">wi-wind-default.point-313-deg</div>
<div class="icon-name">NW</div>
<div class="icon_unicode">f0b1 </div>
</div>
<div class="icon-wrap">
<div class="wi wi-wind-default point-336-deg"></div>
<div class="icon-name">wi-wind-default.point-336-deg</div>
<div class="icon-name">NNW</div>
<div class="icon_unicode">f0b1 </div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,3 +1,19 @@
.icon-wrap
.icon &#xf058;
.icon-name wi-direction-up
.icon_unicode f058
.icon-wrap
.icon &#xf057;
.icon-name wi-direction-up-right
.icon_unicode f057
.icon-wrap
.icon &#xf04d;
.icon-name wi-direction-right
.icon_unicode f04d
.icon-wrap
.icon &#xf088;
.icon-name wi-direction-down-right
.icon_unicode f088
.icon-wrap
.icon &#xf044;
.icon-name wi-direction-down
@ -6,27 +22,11 @@
.icon &#xf043;
.icon-name wi-direction-down-left
.icon_unicode f043
.icon-wrap
.icon &#xf088;
.icon-name wi-direction-down-right
.icon_unicode f088
.icon-wrap
.icon &#xf048;
.icon-name wi-direction-left
.icon_unicode f048
.icon-wrap
.icon &#xf04d;
.icon-name wi-direction-right
.icon_unicode f04d
.icon-wrap
.icon &#xf058;
.icon-name wi-direction-up
.icon_unicode f058
.icon-wrap
.icon &#xf087;
.icon-name wi-direction-up-left
.icon_unicode f087
.icon-wrap
.icon &#xf057;
.icon-name wi-direction-up-right
.icon_unicode f057
.icon_unicode f087

View File

@ -1,59 +1,7 @@
.icon-wrap
.icon &#xf0a3;
.icon-name wi-moon-full
.icon_unicode f0a3
.icon-wrap
.icon &#xf095;
.icon-name wi-moon-new
.icon_unicode f095
.icon-wrap
.icon &#xf0ab;
.icon-name wi-moon-waning-crescent-1
.icon_unicode f0ab
.icon-wrap
.icon &#xf0ac;
.icon-name wi-moon-waning-crescent-2
.icon_unicode f0ac
.icon-wrap
.icon &#xf0ad;
.icon-name wi-moon-waning-crescent-3
.icon_unicode f0ad
.icon-wrap
.icon &#xf0ae;
.icon-name wi-moon-waning-crescent-4
.icon_unicode f0ae
.icon-wrap
.icon &#xf0af;
.icon-name wi-moon-waning-crescent-5
.icon_unicode f0af
.icon-wrap
.icon &#xf0b0;
.icon-name wi-moon-waning-crescent-6
.icon_unicode f0b0
.icon-wrap
.icon &#xf0a4;
.icon-name wi-moon-waning-gibbous-1
.icon_unicode f0a4
.icon-wrap
.icon &#xf0a5;
.icon-name wi-moon-waning-gibbous-2
.icon_unicode f0a5
.icon-wrap
.icon &#xf0a6;
.icon-name wi-moon-waning-gibbous-3
.icon_unicode f0a6
.icon-wrap
.icon &#xf0a7;
.icon-name wi-moon-waning-gibbous-4
.icon_unicode f0a7
.icon-wrap
.icon &#xf0a8;
.icon-name wi-moon-waning-gibbous-5
.icon_unicode f0a8
.icon-wrap
.icon &#xf0a9;
.icon-name wi-moon-waning-gibbous-6
.icon_unicode f0a9
.icon-wrap
.icon &#xf096;
.icon-name wi-moon-waxing-cresent-1
@ -101,4 +49,56 @@
.icon-wrap
.icon &#xf0a2;
.icon-name wi-moon-waxing-gibbous-6
.icon_unicode f0a2
.icon_unicode f0a2
.icon-wrap
.icon &#xf0a3;
.icon-name wi-moon-full
.icon_unicode f0a3
.icon-wrap
.icon &#xf0a4;
.icon-name wi-moon-waning-gibbous-1
.icon_unicode f0a4
.icon-wrap
.icon &#xf0a5;
.icon-name wi-moon-waning-gibbous-2
.icon_unicode f0a5
.icon-wrap
.icon &#xf0a6;
.icon-name wi-moon-waning-gibbous-3
.icon_unicode f0a6
.icon-wrap
.icon &#xf0a7;
.icon-name wi-moon-waning-gibbous-4
.icon_unicode f0a7
.icon-wrap
.icon &#xf0a8;
.icon-name wi-moon-waning-gibbous-5
.icon_unicode f0a8
.icon-wrap
.icon &#xf0a9;
.icon-name wi-moon-waning-gibbous-6
.icon_unicode f0a9
.icon-wrap
.icon &#xf0ab;
.icon-name wi-moon-waning-crescent-1
.icon_unicode f0ab
.icon-wrap
.icon &#xf0ac;
.icon-name wi-moon-waning-crescent-2
.icon_unicode f0ac
.icon-wrap
.icon &#xf0ad;
.icon-name wi-moon-waning-crescent-3
.icon_unicode f0ad
.icon-wrap
.icon &#xf0ae;
.icon-name wi-moon-waning-crescent-4
.icon_unicode f0ae
.icon-wrap
.icon &#xf0af;
.icon-name wi-moon-waning-crescent-5
.icon_unicode f0af
.icon-wrap
.icon &#xf0b0;
.icon-name wi-moon-waning-crescent-6
.icon_unicode f0b0

View File

@ -2,18 +2,6 @@
.icon &#xf08a;
.icon-name wi-time-1
.icon_unicode f08a
.icon-wrap
.icon &#xf093;
.icon-name wi-time-10
.icon_unicode f093
.icon-wrap
.icon &#xf094;
.icon-name wi-time-11
.icon_unicode f094
.icon-wrap
.icon &#xf089;
.icon-name wi-time-12
.icon_unicode f089
.icon-wrap
.icon &#xf08b;
.icon-name wi-time-2
@ -45,4 +33,16 @@
.icon-wrap
.icon &#xf092;
.icon-name wi-time-9
.icon_unicode f092
.icon_unicode f092
.icon-wrap
.icon &#xf093;
.icon-name wi-time-10
.icon_unicode f093
.icon-wrap
.icon &#xf094;
.icon-name wi-time-11
.icon_unicode f094
.icon-wrap
.icon &#xf089;
.icon-name wi-time-12
.icon_unicode f089

View File

@ -1,5 +1,20 @@
include icon-list-time
include icon-list-beaufort
include icon-list-moon
include icon-list-direction
include icon-list-wind
.col-sm-12
h1 Time
.row
include icon-list-time
.col-sm-12
h1 Beaufort
.row
include icon-list-beaufort
.col-sm-12
h1 Moons
.row
include icon-list-moon
.col-sm-12
h1 Directions
.row
include icon-list-direction
.col-sm-12
h1 Wind
.row
include icon-list-wind

View File

@ -17,8 +17,9 @@ html
i.wi.wi-wind-default.point-120-deg
p this
section.content.container.iconExamples
include icon-list
.container
.row
include icon-list

View File

@ -1,64 +1 @@
/*!
* Bootstrap v3.0.0
*
* Copyright 2013 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world by @mdo and @fat.
*/
// Core variables and mixins
@import "bootstrap/variables.less";
@import "bootstrap/mixins.less";
// Reset
@import "bootstrap/normalize.less";
@import "bootstrap/print.less";
// Core CSS
@import "bootstrap/scaffolding.less";
@import "bootstrap/type.less";
@import "bootstrap/code.less";
@import "bootstrap/grid.less";
// @import "tables.less";
// @import "forms.less";
// @import "buttons.less";
// Components: common
// @import "component-animations.less";
// @import "glyphicons.less";
// @import "dropdowns.less";
// @import "list-group.less";
// @import "panels.less";
// @import "wells.less";
// @import "close.less";
// Components: Nav
// @import "navs.less";
// @import "navbar.less";
// @import "button-groups.less";
// @import "breadcrumbs.less";
// @import "pagination.less";
// @import "pager.less";
// Components: Popovers
// @import "modals.less";
// @import "tooltip.less";
// @import "popovers.less";
// Components: Misc
// @import "alerts.less";
// @import "thumbnails.less";
// @import "media.less";
// @import "labels.less";
// @import "badges.less";
// @import "progress-bars.less";
// @import "accordion.less";
// @import "carousel.less";
// @import "jumbotron.less";
// Utility classes
@import "bootstrap/utilities.less"; // Has to be last to override when necessary
@import "bootstrap/responsive-utilities.less";
@import "bootstrap/bootstrap.less";

View File

@ -1,34 +0,0 @@
//
// Accordion
// --------------------------------------------------
// Parent container
.accordion {
margin-bottom: @line-height-computed;
}
// Group == heading + body
.accordion-group {
margin-bottom: 2px;
border: 1px solid #e5e5e5;
border-radius: @border-radius-base;
}
.accordion-heading {
border-bottom: 0;
}
.accordion-heading .accordion-toggle {
display: block;
padding: 8px 15px;
}
// General toggle styles
.accordion-toggle {
cursor: pointer;
}
// Inner needs the styles because you can't animate properly with any styles on the element
.accordion-inner {
padding: 9px 15px;
border-top: 1px solid #e5e5e5;
}

View File

@ -7,29 +7,42 @@
// -------------------------
.alert {
padding: 10px 35px 10px 15px;
padding: @alert-padding;
margin-bottom: @line-height-computed;
color: @alert-text;
background-color: @alert-bg;
border: 1px solid @alert-border;
border: 1px solid transparent;
border-radius: @alert-border-radius;
// Headings for larger alerts
h4 {
margin-top: 0;
// Specified for the h4 to prevent conflicts of changing @headingsColor
// Specified for the h4 to prevent conflicts of changing @headings-color
color: inherit;
}
// Match the hr to the border of the alert
hr {
border-top-color: darken(@alert-border, 5%);
}
// Provide class for links that match alerts
.alert-link {
font-weight: 500;
color: darken(@alert-text, 10%);
font-weight: @alert-link-font-weight;
}
// Improve alignment and spacing of inner content
> p,
> ul {
margin-bottom: 0;
}
> p + p {
margin-top: 5px;
}
}
// Dismissible alerts
//
// Expand the right padding and account for the close button's positioning.
.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
.alert-dismissible {
padding-right: (@alert-padding + 20);
// Adjust close link position
.close {
position: relative;
@ -40,53 +53,21 @@
}
// Alternate styles
// -------------------------
//
// Generate contextual modifier classes for colorizing the alert.
.alert-success {
background-color: @alert-success-bg;
border-color: @alert-success-border;
color: @alert-success-text;
hr {
border-top-color: darken(@alert-success-border, 5%);
}
.alert-link {
color: darken(@alert-success-text, 10%);
}
}
.alert-danger {
background-color: @alert-danger-bg;
border-color: @alert-danger-border;
color: @alert-danger-text;
hr {
border-top-color: darken(@alert-danger-border, 5%);
}
.alert-link {
color: darken(@alert-danger-text, 10%);
}
.alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
}
.alert-info {
background-color: @alert-info-bg;
border-color: @alert-info-border;
color: @alert-info-text;
hr {
border-top-color: darken(@alert-info-border, 5%);
}
.alert-link {
color: darken(@alert-info-text, 10%);
}
.alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
}
// Block alerts
// -------------------------
.alert-warning {
.alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
}
.alert-block {
padding-top: 15px;
padding-bottom: 15px;
}
.alert-block > p,
.alert-block > ul {
margin-bottom: 0;
}
.alert-block p + p {
margin-top: 5px;
.alert-danger {
.alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
}

View File

@ -3,56 +3,64 @@
// --------------------------------------------------
// Base classes
// Base class
.badge {
display: inline-block;
min-width: 10px;
padding: 3px 7px;
font-size: @font-size-small;
font-weight: bold;
color: #fff;
line-height: 1;
font-weight: @badge-font-weight;
color: @badge-color;
line-height: @badge-line-height;
vertical-align: middle;
white-space: nowrap;
text-align: center;
background-color: @gray-light;
border-radius: 10px;
background-color: @badge-bg;
border-radius: @badge-border-radius;
// Empty labels/badges collapse
// Empty badges collapse automatically (not available in IE8)
&:empty {
display: none;
}
}
// Hover state, but only for links
a.badge {
&:hover,
&:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
}
// Quick fix for labels/badges in buttons
.btn {
.badge {
// Quick fix for badges in buttons
.btn & {
position: relative;
top: -1px;
}
}
.btn-mini {
.badge {
.btn-xs &,
.btn-group-xs > .btn & {
top: 0;
padding: 1px 5px;
}
// Hover state, but only for links
a& {
&:hover,
&:focus {
color: @badge-link-hover-color;
text-decoration: none;
cursor: pointer;
}
}
// Account for badges in navs
.list-group-item.active > &,
.nav-pills > .active > a > & {
color: @badge-active-color;
background-color: @badge-active-bg;
}
.list-group-item > & {
float: right;
}
.list-group-item > & + & {
margin-right: 5px;
}
.nav-pills > li > a > & {
margin-left: 3px;
}
}
// Account for counters in navs
a.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
color: @link-color;
background-color: #fff;
}
.nav-pills > li > a > .badge {
margin-left: 3px;
}

View File

@ -1,64 +1,56 @@
/*!
* Bootstrap v3.0.0
*
* Copyright 2013 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world by @mdo and @fat.
* Bootstrap v3.3.5 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
// Core variables and mixins
@import "variables.less";
@import "mixins.less";
// Reset
// Reset and dependencies
@import "normalize.less";
@import "print.less";
@import "glyphicons.less";
// Core CSS
@import "scaffolding.less";
@import "type.less";
@import "code.less";
@import "grid.less";
@import "tables.less";
@import "forms.less";
@import "buttons.less";
// Components: common
// Components
@import "component-animations.less";
@import "glyphicons.less";
@import "dropdowns.less";
@import "list-group.less";
@import "panels.less";
@import "wells.less";
@import "close.less";
// Components: Nav
@import "button-groups.less";
@import "input-groups.less";
@import "navs.less";
@import "navbar.less";
@import "button-groups.less";
@import "breadcrumbs.less";
@import "pagination.less";
@import "pager.less";
@import "labels.less";
@import "badges.less";
@import "jumbotron.less";
@import "thumbnails.less";
@import "alerts.less";
@import "progress-bars.less";
@import "media.less";
@import "list-group.less";
@import "panels.less";
@import "responsive-embed.less";
@import "wells.less";
@import "close.less";
// Components: Popovers
// Components w/ JavaScript
@import "modals.less";
@import "tooltip.less";
@import "popovers.less";
// Components: Misc
@import "alerts.less";
@import "thumbnails.less";
@import "media.less";
@import "labels.less";
@import "badges.less";
@import "progress-bars.less";
@import "accordion.less";
@import "carousel.less";
@import "jumbotron.less";
// Utility classes
@import "utilities.less"; // Has to be last to override when necessary
@import "utilities.less";
@import "responsive-utilities.less";

View File

@ -4,25 +4,23 @@
.breadcrumb {
padding: 8px 15px;
margin: 0 0 @line-height-computed;
padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
margin-bottom: @line-height-computed;
list-style: none;
background-color: #f5f5f5;
background-color: @breadcrumb-bg;
border-radius: @border-radius-base;
> li {
display: inline-block;
text-shadow: 0 1px 0 #fff;
&:after {
display: inline-block;
content: "\00a0 /"; // Unicode space added since inline-block means non-collapsing white-space
+ li:before {
content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
padding: 0 5px;
color: #ccc;
}
&:last-child:after {
display: none; // No divider after last element
color: @breadcrumb-color;
}
}
> .active {
color: @gray-light;
color: @breadcrumb-active-color;
}
}

View File

@ -2,14 +2,6 @@
// Button groups
// --------------------------------------------------
// Button carets
.btn .caret {
border-top-color: @btn-default-color;
}
.dropup .btn .caret {
border-bottom-color: @btn-default-color;
}
// Make the div behave like a button
.btn-group,
.btn-group-vertical {
@ -21,29 +13,37 @@
float: left;
// Bring the "active" button to the front
&:hover,
&:active {
&:focus,
&:active,
&.active {
z-index: 2;
}
}
}
// Prevent double borders when buttons are next to each other
.btn-group .btn + .btn {
margin-left: -1px;
.btn-group {
.btn + .btn,
.btn + .btn-group,
.btn-group + .btn,
.btn-group + .btn-group {
margin-left: -1px;
}
}
// Optional: Group multiple button groups together for a toolbar
.btn-toolbar {
.clearfix();
margin-left: -5px; // Offset the first child's margin
&:extend(.clearfix all);
.btn-group {
.btn,
.btn-group,
.input-group {
float: left;
}
// Space out series of button groups
> .btn + .btn,
> .btn-group + .btn,
> .btn + .btn-group,
> .btn-group + .btn-group {
> .btn,
> .btn-group,
> .input-group {
margin-left: 5px;
}
}
@ -72,11 +72,13 @@
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group > .btn-group:first-child > .btn:last-child,
.btn-group > .btn-group:first-child > .dropdown-toggle {
.border-right-radius(0);
.btn-group > .btn-group:first-child:not(:last-child) {
> .btn:last-child,
> .dropdown-toggle {
.border-right-radius(0);
}
}
.btn-group > .btn-group:last-child > .btn:first-child {
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
.border-left-radius(0);
}
@ -87,6 +89,14 @@
}
// Sizing
//
// Remix the default button sizing classes into new ones for easier manipulation.
.btn-group-xs > .btn { &:extend(.btn-xs); }
.btn-group-sm > .btn { &:extend(.btn-sm); }
.btn-group-lg > .btn { &:extend(.btn-lg); }
// Split button dropdowns
// ----------------------
@ -96,11 +106,7 @@
padding-left: 8px;
padding-right: 8px;
}
.btn-group > .btn-mini + .dropdown-toggle {
padding-left: 5px;
padding-right: 5px;
}
.btn-group > .btn-large + .dropdown-toggle {
.btn-group > .btn-lg + .dropdown-toggle {
padding-left: 12px;
padding-right: 12px;
}
@ -109,6 +115,11 @@
// Remove the gradient and set the same inset shadow as the :active state
.btn-group.open .dropdown-toggle {
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
// Show no shadow for `.btn-link` since it has no other button styles.
&.btn-link {
.box-shadow(none);
}
}
@ -117,34 +128,69 @@
margin-left: 0;
}
// Carets in other button sizes
.btn-large .caret {
border-width: 5px;
.btn-lg .caret {
border-width: @caret-width-large @caret-width-large 0;
border-bottom-width: 0;
}
// Upside down carets for .dropup
.dropup .btn-large .caret {
border-bottom-width: 5px;
.dropup .btn-lg .caret {
border-width: 0 @caret-width-large @caret-width-large;
}
// Vertical button groups
// ----------------------
.btn-group-vertical > .btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
+ .btn {
.btn-group-vertical {
> .btn,
> .btn-group,
> .btn-group > .btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
}
// Clear floats so dropdown menus can be properly placed
> .btn-group {
&:extend(.clearfix all);
> .btn {
float: none;
}
}
> .btn + .btn,
> .btn + .btn-group,
> .btn-group + .btn,
> .btn-group + .btn-group {
margin-top: -1px;
margin-left: 0;
}
}
.btn-group-vertical .btn:not(:first-child):not(:last-child) {
.btn-group-vertical > .btn {
&:not(:first-child):not(:last-child) {
border-radius: 0;
}
&:first-child:not(:last-child) {
border-top-right-radius: @btn-border-radius-base;
.border-bottom-radius(0);
}
&:last-child:not(:first-child) {
border-bottom-left-radius: @btn-border-radius-base;
.border-top-radius(0);
}
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group-vertical .btn:first-child {
.border-bottom-radius(0);
.btn-group-vertical > .btn-group:first-child:not(:last-child) {
> .btn:last-child,
> .dropdown-toggle {
.border-bottom-radius(0);
}
}
.btn-group-vertical .btn:last-child {
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
.border-top-radius(0);
}
@ -155,16 +201,44 @@
.btn-group-justified {
display: table;
width: 100%;
.btn {
table-layout: fixed;
border-collapse: separate;
> .btn,
> .btn-group {
float: none;
display: table-cell;
width: 1%;
}
> .btn-group .btn {
width: 100%;
}
> .btn-group .dropdown-menu {
left: auto;
}
}
// Checkbox and radio options
.btn-group[data-toggle="buttons-radio"] > .btn > input[type="radio"],
.btn-group[data-toggle="buttons-checkbox"] > .btn > input[type="checkbox"] {
display: none;
//
// In order to support the browser's form validation feedback, powered by the
// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
// `display: none;` or `visibility: hidden;` as that also hides the popover.
// Simply visually hiding the inputs via `opacity` would leave them clickable in
// certain cases which is prevented by using `clip` and `pointer-events`.
// This way, we ensure a DOM element is visible to position the popover from.
//
// See https://github.com/twbs/bootstrap/pull/12794 and
// https://github.com/twbs/bootstrap/pull/14559 for more information.
[data-toggle="buttons"] {
> .btn,
> .btn-group > .btn {
input[type="radio"],
input[type="checkbox"] {
position: absolute;
clip: rect(0,0,0,0);
pointer-events: none;
}
}
}

View File

@ -6,28 +6,33 @@
// Base styles
// --------------------------------------------------
// Core styles
.btn {
display: inline-block;
padding: @padding-base-vertical @padding-base-horizontal;
margin-bottom: 0; // For input.btn
font-size: @font-size-base;
font-weight: 500;
line-height: @line-height-base;
font-weight: @btn-font-weight;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent;
border-radius: @border-radius-base;
white-space: nowrap;
.button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);
.user-select(none);
&:focus {
.tab-focus();
&,
&:active,
&.active {
&:focus,
&.focus {
.tab-focus();
}
}
&:hover,
&:focus {
color: #fff;
&:focus,
&.focus {
color: @btn-default-color;
text-decoration: none;
}
@ -41,12 +46,17 @@
&.disabled,
&[disabled],
fieldset[disabled] & {
cursor: default;
pointer-events: none; // Future-proof disabling of clicks
cursor: @cursor-disabled;
.opacity(.65);
.box-shadow(none);
}
a& {
&.disabled,
fieldset[disabled] & {
pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
}
}
}
@ -54,26 +64,26 @@
// --------------------------------------------------
.btn-default {
.btn-pseudo-states(@btn-default-color, @btn-default-bg, @btn-default-border);
.button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);
}
.btn-primary {
.btn-pseudo-states(@btn-primary-color, @btn-primary-bg, @btn-primary-border);
}
// Warning appears as orange
.btn-warning {
.btn-pseudo-states(@btn-warning-color, @btn-warning-bg, @btn-warning-border);
}
// Danger and error appear as red
.btn-danger {
.btn-pseudo-states(@btn-danger-color, @btn-danger-bg, @btn-danger-border);
.button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
}
// Success appears as green
.btn-success {
.btn-pseudo-states(@btn-success-color, @btn-success-bg, @btn-success-border);
.button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
}
// Info appears as blue-green
.btn-info {
.btn-pseudo-states(@btn-info-color, @btn-info-bg, @btn-info-border);
.button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
}
// Warning appears as orange
.btn-warning {
.button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
}
// Danger and error appear as red
.btn-danger {
.button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
}
@ -81,38 +91,36 @@
// -------------------------
// Make a button look and behave like a link
.btn-link,
.btn-link:active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
background-color: transparent;
background-image: none;
.box-shadow(none);
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
border-color: transparent;
}
.btn-link {
color: @link-color;
font-weight: normal;
cursor: pointer;
border-radius: 0;
}
.btn-link:hover,
.btn-link:focus {
color: @link-hover-color;
text-decoration: underline;
background-color: transparent;
}
.btn-link {
&,
&:active,
&.active,
&[disabled],
fieldset[disabled] & {
background-color: transparent;
.box-shadow(none);
}
&,
&:hover,
&:focus,
&:active {
border-color: transparent;
}
&:hover,
&:focus {
color: @link-hover-color;
text-decoration: @link-hover-decoration;
background-color: transparent;
}
&[disabled],
fieldset[disabled] & {
&:hover,
&:focus {
color: @gray-dark;
color: @btn-link-disabled-color;
text-decoration: none;
}
}
@ -122,16 +130,16 @@ fieldset[disabled] .btn-link {
// Button Sizes
// --------------------------------------------------
.btn-large {
padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large;
border-radius: @border-radius-large;
.btn-lg {
// line-height: ensure even-numbered height of button next to large input
.button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);
}
.btn-small {
padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small;
line-height: 1.5; // ensure proper height of button next to small input
border-radius: @border-radius-small;
.btn-sm {
// line-height: ensure proper height of button next to small input
.button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
}
.btn-xs {
.button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
}
@ -141,8 +149,6 @@ fieldset[disabled] .btn-link {
.btn-block {
display: block;
width: 100%;
padding-left: 0;
padding-right: 0;
}
// Vertically space out multiple block buttons

View File

@ -8,15 +8,10 @@
position: relative;
}
// Wrap all slides, but only show the active one
.carousel-inner {
position: relative;
overflow: hidden;
width: 100%;
}
// Immediate parent of all slides
.carousel-inner {
> .item {
display: none;
@ -26,14 +21,40 @@
// Account for jankitude on images
> img,
> a > img {
display: block;
&:extend(.img-responsive);
line-height: 1;
}
// WebKit CSS3 transforms for supported devices
@media all and (transform-3d), (-webkit-transform-3d) {
.transition-transform(~'0.6s ease-in-out');
.backface-visibility(~'hidden');
.perspective(1000px);
&.next,
&.active.right {
.translate3d(100%, 0, 0);
left: 0;
}
&.prev,
&.active.left {
.translate3d(-100%, 0, 0);
left: 0;
}
&.next.left,
&.prev.right,
&.active {
.translate3d(0, 0, 0);
left: 0;
}
}
}
> .active,
> .next,
> .prev { display: block; }
> .prev {
display: block;
}
> .active {
left: 0;
@ -74,80 +95,119 @@
top: 0;
left: 0;
bottom: 0;
width: 15%;
.opacity(.5);
font-size: 20px;
color: #fff;
width: @carousel-control-width;
.opacity(@carousel-control-opacity);
font-size: @carousel-control-font-size;
color: @carousel-control-color;
text-align: center;
text-shadow: 0 1px 2px rgba(0,0,0,.6);
// we can't have this transition here
// because webkit cancels the carousel
// animation if you trip this while
// in the middle of another animation
// ;_;
// .transition(opacity .2s linear);
text-shadow: @carousel-text-shadow;
// We can't have this transition here because WebKit cancels the carousel
// animation if you trip this while in the middle of another animation.
// Set gradients for backgrounds
&.left {
#gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
background-color: transparent;
}
&.right {
left: auto;
right: 0;
#gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
background-color: transparent;
}
// Hover/focus state
&:hover,
&:focus {
color: #fff;
outline: 0;
color: @carousel-control-color;
text-decoration: none;
.opacity(.9);
}
// Toggles
.glyphicon {
.icon-prev,
.icon-next,
.glyphicon-chevron-left,
.glyphicon-chevron-right {
position: absolute;
top: 50%;
left: 50%;
margin-top: -10px;
z-index: 5;
display: inline-block;
}
.icon-prev,
.glyphicon-chevron-left {
left: 50%;
margin-left: -10px;
}
.icon-next,
.glyphicon-chevron-right {
right: 50%;
margin-right: -10px;
}
.icon-prev,
.icon-next {
width: 20px;
height: 20px;
margin-top: -10px;
margin-left: -10px;
line-height: 1;
font-family: serif;
}
.icon-prev {
&:before {
content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
}
}
.icon-next {
&:before {
content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
}
}
}
// Optional indicator pips
// -----------------------------
//
// Add an unordered list with the following class and add a list item for each
// slide your carousel holds.
.carousel-indicators {
position: absolute;
bottom: 20px;
bottom: 10px;
left: 50%;
z-index: 15;
width: 100px;
margin: 0 0 0 -50px;
width: 60%;
margin-left: -30%;
padding-left: 0;
list-style: none;
text-align: center;
li {
display: inline-block;
width: 8px;
height: 8px;
margin-left: 0;
margin-right: 0;
width: 10px;
height: 10px;
margin: 1px;
text-indent: -999px;
border: 1px solid #fff;
border-radius: 5px;
border: 1px solid @carousel-indicator-border-color;
border-radius: 10px;
cursor: pointer;
// IE8-9 hack for event handling
//
// Internet Explorer 8-9 does not support clicks on elements without a set
// `background-color`. We cannot use `filter` since that's not viewed as a
// background color by the browser. Thus, a hack is needed.
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
//
// For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
// set alpha transparency for the best results possible.
background-color: #000 \9; // IE8
background-color: rgba(0,0,0,0); // IE9
}
.active {
background-color: #fff;
margin: 0;
width: 12px;
height: 12px;
background-color: @carousel-indicator-active-bg;
}
}
@ -162,9 +222,9 @@
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
color: @carousel-caption-color;
text-align: center;
text-shadow: 0 1px 2px rgba(0,0,0,.6);
text-shadow: @carousel-text-shadow;
& .btn {
text-shadow: none; // No shadow for button elements in carousel-caption
}
@ -172,15 +232,27 @@
// Scale up controls for tablets and up
@media screen and (min-width: @screen-tablet) {
@media screen and (min-width: @screen-sm-min) {
// Scale up the controls a smidge
.carousel-control .glyphicon {
width: 30px;
height: 30px;
margin-top: -15px;
margin-left: -15px;
font-size: 30px;
.carousel-control {
.glyphicon-chevron-left,
.glyphicon-chevron-right,
.icon-prev,
.icon-next {
width: 30px;
height: 30px;
margin-top: -15px;
font-size: 30px;
}
.glyphicon-chevron-left,
.icon-prev {
margin-left: -15px;
}
.glyphicon-chevron-right,
.icon-next {
margin-right: -15px;
}
}
// Show and left align the captions
@ -189,4 +261,9 @@
right: 20%;
padding-bottom: 30px;
}
// Move up the indicators
.carousel-indicators {
bottom: 20px;
}
}

View File

@ -6,28 +6,29 @@
.close {
float: right;
font-size: (@font-size-base * 1.5);
font-weight: bold;
font-weight: @close-font-weight;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 rgba(255,255,255,1);
color: @close-color;
text-shadow: @close-text-shadow;
.opacity(.2);
&:hover,
&:focus {
color: #000;
color: @close-color;
text-decoration: none;
cursor: pointer;
.opacity(.5);
}
}
// Additional properties for button version
// iOS requires the button element instead of an anchor tag.
// If you want the anchor version, it requires `href="#"`.
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
// Additional properties for button version
// iOS requires the button element instead of an anchor tag.
// If you want the anchor version, it requires `href="#"`.
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
button& {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
}

View File

@ -1,25 +1,40 @@
//
// Code (inline and blocK)
// Code (inline and block)
// --------------------------------------------------
// Inline and block code styles
code,
pre {
padding: 0 3px 2px;
kbd,
pre,
samp {
font-family: @font-family-monospace;
font-size: (@font-size-base - 2);
color: @gray-dark;
border-radius: 4px;
}
// Inline code
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
white-space: nowrap;
color: @code-color;
background-color: @code-bg;
border-radius: @border-radius-base;
}
// User input typically entered via keyboard
kbd {
padding: 2px 4px;
font-size: 90%;
color: @kbd-color;
background-color: @kbd-bg;
border-radius: @border-radius-small;
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
kbd {
padding: 0;
font-size: 100%;
font-weight: bold;
box-shadow: none;
}
}
// Blocks of code
@ -31,31 +46,24 @@ pre {
line-height: @line-height-base;
word-break: break-all;
word-wrap: break-word;
white-space: pre;
white-space: pre-wrap;
background-color: #f5f5f5;
border: 1px solid #ccc; // IE8 fallback
border: 1px solid rgba(0,0,0,.15);
color: @pre-color;
background-color: @pre-bg;
border: 1px solid @pre-border-color;
border-radius: @border-radius-base;
// Make prettyprint styles more spaced out for readability
&.prettyprint {
margin-bottom: @line-height-computed;
}
// Account for some code outputs that place code tags in pre tags
code {
padding: 0;
font-size: inherit;
color: inherit;
white-space: pre;
white-space: pre-wrap;
background-color: transparent;
border: 0;
border-radius: 0;
}
}
// Enable scrollable blocks of code
.pre-scrollable {
max-height: 340px;
max-height: @pre-scrollable-max-height;
overflow-y: scroll;
}

View File

@ -2,6 +2,10 @@
// Component animations
// --------------------------------------------------
// Heads up!
//
// We don't use the `.opacity()` mixin here since it causes a bug with text
// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
.fade {
opacity: 0;
@ -12,12 +16,18 @@
}
.collapse {
display: none;
&.in { display: block; }
tr&.in { display: table-row; }
tbody&.in { display: table-row-group; }
}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
.transition(height .35s ease);
&.in {
height: auto;
}
.transition-property(~"height, visibility");
.transition-duration(.35s);
.transition-timing-function(ease);
}

View File

@ -4,21 +4,30 @@
// Dropdown arrow/caret
// --------------------
.caret {
display: inline-block;
width: 0;
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px solid #000;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
content: "";
border-top: @caret-width-base dashed;
border-top: @caret-width-base solid ~"\9"; // IE8
border-right: @caret-width-base solid transparent;
border-left: @caret-width-base solid transparent;
}
// The dropdown wrapper (div)
.dropup,
.dropdown {
position: relative;
}
// Prevent the focus on the dropdown toggle when closing dropdowns
.dropdown-toggle:focus {
outline: 0;
}
// The dropdown menu (ul)
// ----------------------
.dropdown-menu {
position: absolute;
top: 100%;
@ -30,14 +39,18 @@
padding: 5px 0;
margin: 2px 0 0; // override default ul
list-style: none;
font-size: @font-size-base;
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
background-color: @dropdown-bg;
border: 1px solid #ccc; // IE8 fallback
border: 1px solid @dropdown-fallback-border; // IE8 fallback
border: 1px solid @dropdown-border;
border-radius: @border-radius-base;
.box-shadow(0 6px 12px rgba(0,0,0,.175));
.background-clip(padding-box);
background-clip: padding-box;
// Aligns the dropdown menu to right
//
// Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
&.pull-right {
right: 0;
left: auto;
@ -45,7 +58,7 @@
// Dividers (basically an hr) within the dropdown
.divider {
.nav-divider(@dropdown-divider-top, @dropdown-divider-bottom);
.nav-divider(@dropdown-divider-bg);
}
// Links within the dropdown menu
@ -61,47 +74,50 @@
}
// Hover/Focus state
// -----------
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-submenu:hover > a,
.dropdown-submenu:focus > a {
text-decoration: none;
color: @dropdown-link-hover-color;
#gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
.dropdown-menu > li > a {
&:hover,
&:focus {
text-decoration: none;
color: @dropdown-link-hover-color;
background-color: @dropdown-link-hover-bg;
}
}
// Active state
// ------------
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
color: @dropdown-link-active-color;
text-decoration: none;
outline: 0;
#gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
.dropdown-menu > .active > a {
&,
&:hover,
&:focus {
color: @dropdown-link-active-color;
text-decoration: none;
outline: 0;
background-color: @dropdown-link-active-bg;
}
}
// Disabled state
// --------------
//
// Gray out text and ensure the hover/focus state remains gray
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
color: @gray-light;
}
// Nuke hover/focus effects
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none; // Remove CSS gradient
.reset-filter();
cursor: default;
.dropdown-menu > .disabled > a {
&,
&:hover,
&:focus {
color: @dropdown-link-disabled-color;
}
// Nuke hover/focus effects
&:hover,
&:focus {
text-decoration: none;
background-color: transparent;
background-image: none; // Remove CSS gradient
.reset-filter();
cursor: @cursor-disabled;
}
}
// Open state for the dropdown
// ---------------------------
.open {
// Show the menu
> .dropdown-menu {
@ -114,113 +130,87 @@
}
}
// Menu positioning
//
// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
// menu with the parent.
.dropdown-menu-right {
left: auto; // Reset the default from `.dropdown-menu`
right: 0;
}
// With v3, we enabled auto-flipping if you have a dropdown within a right
// aligned nav component. To enable the undoing of that, we provide an override
// to restore the default dropdown menu alignment.
//
// This is only for left-aligning a dropdown menu within a `.navbar-right` or
// `.pull-right` nav component.
.dropdown-menu-left {
left: 0;
right: auto;
}
// Dropdown section headers
.dropdown-header {
display: block;
padding: 3px 20px;
font-size: @font-size-small;
line-height: @line-height-base;
color: @dropdown-header-color;
white-space: nowrap; // as with > li > a
}
// Backdrop to catch body clicks on mobile, etc.
// ---------------------------
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: @zindex-dropdown - 10;
z-index: (@zindex-dropdown - 10);
}
// Right aligned dropdowns
// ---------------------------
.pull-right > .dropdown-menu {
right: 0;
left: auto;
}
// Allow for dropdowns to go bottom up (aka, dropup-menu)
// ------------------------------------------------------
//
// Just add .dropup after the standard .dropdown class and you're set, bro.
// TODO: abstract this so that the navbar fixed styles are not placed here?
.dropup,
.navbar-fixed-bottom .dropdown {
// Reverse the caret
.caret {
border-top: 0;
border-bottom: 4px solid #000;
border-bottom: @caret-width-base dashed;
border-bottom: @caret-width-base solid ~"\9"; // IE8
content: "";
}
// Different positioning for bottom up menu
.dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 1px;
margin-bottom: 2px;
}
}
// Sub menus
// ---------------------------
.dropdown-submenu {
position: relative;
}
// Default dropdowns
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
border-top-left-radius: 0; // Nuke the closest corner as appropriate
}
.dropdown-submenu:hover > .dropdown-menu {
display: block;
}
// Dropups
.dropup .dropdown-submenu > .dropdown-menu {
top: auto;
bottom: 0;
margin-top: 0;
margin-bottom: -2px;
border-bottom-left-radius: 0; // Nuke the closest corner as appropriate
}
// Component alignment
//
// Reiterate per navbar.less and the modified component alignment there.
// Caret to indicate there is a submenu
.dropdown-submenu > a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: darken(@dropdown-bg, 20%);
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover > a:after {
border-left-color: @dropdown-link-hover-color;
}
// Left aligned submenus
.dropdown-submenu.pull-left {
// Undo the float
// Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.
float: none;
// Positioning the submenu
> .dropdown-menu {
left: -100%;
margin-left: 10px;
border-top-right-radius: 0; // Remove the rounded corner here
@media (min-width: @grid-float-breakpoint) {
.navbar-right {
.dropdown-menu {
.dropdown-menu-right();
}
// Necessary for overrides of the default right aligned menu.
// Will remove come v4 in all likelihood.
.dropdown-menu-left {
.dropdown-menu-left();
}
}
}
// Tweak nav headers
// ---------------------------
// Increase padding from 15px to 20px on sides
.dropdown .dropdown-menu .nav-header {
padding-left: 20px;
padding-right: 20px;
}
// Typeahead
// ---------------------------
.typeahead {
z-index: 1051;
}

View File

@ -3,17 +3,18 @@
// --------------------------------------------------
// Non-controls
// -------------------------
form {
margin: 0;
}
// Normalize non-controls
//
// Restyle and baseline non-control form elements.
fieldset {
padding: 0;
margin: 0;
border: 0;
// Chrome and Firefox set a `min-width: min-content;` on fieldsets,
// so we reset that to ensure it behaves more like a standard block element.
// See https://github.com/twbs/bootstrap/issues/12359.
min-width: 0;
}
legend {
@ -23,110 +24,46 @@ legend {
margin-bottom: @line-height-computed;
font-size: (@font-size-base * 1.5);
line-height: inherit;
color: @gray-dark;
color: @legend-color;
border: 0;
border-bottom: 1px solid #e5e5e5;
border-bottom: 1px solid @legend-border-color;
}
label {
display: inline-block;
max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
margin-bottom: 5px;
font-weight: bold;
}
// Form controls
// -------------------------
// Shared size and type resets
select,
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"] {
display: block;
min-height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
padding: @padding-base-vertical @padding-base-horizontal;
font-size: @font-size-base;
line-height: @line-height-base;
color: @gray;
vertical-align: middle;
background-color: @input-bg;
border: 1px solid @input-border;
border-radius: @input-border-radius;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
.transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
&:focus {
border-color: rgba(82,168,236,.8);
outline: 0;
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
}
// Disabled and read-only inputs
// Note: HTML5 says that inputs under a fieldset > legend:first-child won't be
// disabled if the fieldset is disabled. Due to implementation difficulty,
// we don't honor that edge case; we style them as disabled anyway.
&[disabled],
&[readonly],
fieldset[disabled] & {
cursor: not-allowed;
background-color: @input-bg-disabled;
}
}
// Reset appearance properties for textual inputs and textarea
// Can't be on input[type=*] selectors or it's too specific
input,
select,
textarea {
width: 100%;
}
// Reset width of input images, buttons, radios, checkboxes
input[type="file"],
input[type="image"],
input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="radio"],
input[type="checkbox"] {
width: auto; // Override of generic input selector
}
// Normalize form controls
//
// While most of our form styles require extra classes, some basic normalization
// is required to ensure optimum display with or without those classes to better
// address browser inconsistencies.
// Override content-box in Normalize (* isn't specific enough)
input[type="search"] {
.box-sizing(border-box);
}
// Reset height since textareas have rows
textarea {
height: auto;
}
// Position radios and checkboxes better
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9; /* IE8-9 */
margin-top: 1px \9; // IE8-9
line-height: normal;
}
// Set the height of select and file controls to match text inputs
select,
input[type="file"] {
height: @input-height-base; /* In IE7, the height of the select element cannot be changed by height, only font-size. TODO: Check if this is still needed when dropping IE7 support */
line-height: @input-height-base;
display: block;
}
// Make range inputs behave like textual form controls
input[type="range"] {
display: block;
width: 100%;
}
// Make multiple select elements height not fixed
@ -135,45 +72,163 @@ select[size] {
height: auto;
}
// Fix optgroup Firefox bug per https://github.com/twitter/bootstrap/issues/7611
select optgroup {
font-size: inherit;
font-style: inherit;
font-family: inherit;
}
// Focus for select, file, radio, and checkbox
// Focus for file, radio, and checkbox
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
.tab-focus();
}
// Placeholder
// -------------------------
// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
input,
textarea {
.placeholder();
// Adjust output element
output {
display: block;
padding-top: (@padding-base-vertical + 1);
font-size: @font-size-base;
line-height: @line-height-base;
color: @input-color;
}
// CHECKBOXES & RADIOS
// -------------------
// Common form controls
//
// Shared size and type resets for form controls. Apply `.form-control` to any
// of the following form controls:
//
// select
// textarea
// input[type="text"]
// input[type="password"]
// input[type="datetime"]
// input[type="datetime-local"]
// input[type="date"]
// input[type="month"]
// input[type="time"]
// input[type="week"]
// input[type="number"]
// input[type="email"]
// input[type="url"]
// input[type="search"]
// input[type="tel"]
// input[type="color"]
.form-control {
display: block;
width: 100%;
height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
padding: @padding-base-vertical @padding-base-horizontal;
font-size: @font-size-base;
line-height: @line-height-base;
color: @input-color;
background-color: @input-bg;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid @input-border;
border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
.transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
// Customize the `:focus` state to imitate native WebKit styles.
.form-control-focus();
// Placeholder
.placeholder();
// Unstyle the caret on `<select>`s in IE10+.
&::-ms-expand {
border: 0;
background-color: transparent;
}
// Disabled and read-only inputs
//
// HTML5 says that controls under a fieldset > legend:first-child won't be
// disabled if the fieldset is disabled. Due to implementation difficulty, we
// don't honor that edge case; we style them as disabled anyway.
&[disabled],
&[readonly],
fieldset[disabled] & {
background-color: @input-bg-disabled;
opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
}
&[disabled],
fieldset[disabled] & {
cursor: @cursor-disabled;
}
// Reset height for `textarea`s
textarea& {
height: auto;
}
}
// Search inputs in iOS
//
// This overrides the extra rounded corners on search inputs in iOS so that our
// `.form-control` class can properly style them. Note that this cannot simply
// be added to `.form-control` as it's not specific enough. For details, see
// https://github.com/twbs/bootstrap/issues/11586.
input[type="search"] {
-webkit-appearance: none;
}
// Special styles for iOS temporal inputs
//
// In Mobile Safari, setting `display: block` on temporal inputs causes the
// text within the input to become vertically misaligned. As a workaround, we
// set a pixel line-height that matches the given height of the input, but only
// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
//
// Note that as of 8.3, iOS doesn't support `datetime` or `week`.
@media screen and (-webkit-min-device-pixel-ratio: 0) {
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
&.form-control {
line-height: @input-height-base;
}
&.input-sm,
.input-group-sm & {
line-height: @input-height-small;
}
&.input-lg,
.input-group-lg & {
line-height: @input-height-large;
}
}
}
// Form groups
//
// Designed to help with the organization and spacing of vertical forms. For
// horizontal forms, use the predefined grid classes.
.form-group {
margin-bottom: @form-group-margin-bottom;
}
// Checkboxes and radios
//
// Indent the labels to position radios/checkboxes as hanging controls.
// Indent the labels to position radios/checkboxes as hanging
.radio,
.checkbox {
position: relative;
display: block;
min-height: @line-height-computed; // clear the floating input if there is no label text
margin-top: 10px;
margin-bottom: 10px;
padding-left: 20px;
vertical-align: middle;
label {
display: inline;
min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text
padding-left: 20px;
margin-bottom: 0;
font-weight: normal;
cursor: pointer;
@ -183,27 +238,21 @@ textarea {
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
float: left;
position: absolute;
margin-left: -20px;
margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
}
/*
// Move the options list down to align with labels
.controls > .radio:first-child,
.controls > .checkbox:first-child {
padding-top: 5px; // has to be padding because margin collaspes
}
*/
// Radios and checkboxes on same line
.radio-inline,
.checkbox-inline {
position: relative;
display: inline-block;
// padding-top: 5px;
padding-left: 20px;
margin-bottom: 0;
vertical-align: middle;
@ -216,64 +265,192 @@ textarea {
margin-left: 10px; // space out consecutive inline controls
}
// INPUT SIZES
// -----------
select,
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"] {
&.input-large {
min-height: @input-height-large;
padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large;
border-radius: @border-radius-large;
// Apply same disabled cursor tweak as for inputs
// Some special care is needed because <label>s don't inherit their parent's `cursor`.
//
// Note: Neither radios nor checkboxes can be readonly.
input[type="radio"],
input[type="checkbox"] {
&[disabled],
&.disabled,
fieldset[disabled] & {
cursor: @cursor-disabled;
}
&.input-small {
min-height: @input-height-small;
}
// These classes are used directly on <label>s
.radio-inline,
.checkbox-inline {
&.disabled,
fieldset[disabled] & {
cursor: @cursor-disabled;
}
}
// These classes are used on elements with <label> descendants
.radio,
.checkbox {
&.disabled,
fieldset[disabled] & {
label {
cursor: @cursor-disabled;
}
}
}
// Static form control text
//
// Apply class to a `p` element to make any string of text align with labels in
// a horizontal form layout.
.form-control-static {
// Size it appropriately next to real form controls
padding-top: (@padding-base-vertical + 1);
padding-bottom: (@padding-base-vertical + 1);
// Remove default margin from `p`
margin-bottom: 0;
min-height: (@line-height-computed + @font-size-base);
&.input-lg,
&.input-sm {
padding-left: 0;
padding-right: 0;
}
}
// Form control sizing
//
// Build on `.form-control` with modifier classes to decrease or increase the
// height and font-size of form controls.
//
// The `.form-group-* form-control` variations are sadly duplicated to avoid the
// issue documented in https://github.com/twbs/bootstrap/issues/15074.
.input-sm {
.input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
}
.form-group-sm {
.form-control {
height: @input-height-small;
padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small;
border-radius: @border-radius-small;
line-height: @line-height-small;
border-radius: @input-border-radius-small;
}
select.form-control {
height: @input-height-small;
line-height: @input-height-small;
}
textarea.form-control,
select[multiple].form-control {
height: auto;
}
.form-control-static {
height: @input-height-small;
min-height: (@line-height-computed + @font-size-small);
padding: (@padding-small-vertical + 1) @padding-small-horizontal;
font-size: @font-size-small;
line-height: @line-height-small;
}
}
.input-lg {
.input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
}
.form-group-lg {
.form-control {
height: @input-height-large;
padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large;
line-height: @line-height-large;
border-radius: @input-border-radius-large;
}
select.form-control {
height: @input-height-large;
line-height: @input-height-large;
}
textarea.form-control,
select[multiple].form-control {
height: auto;
}
.form-control-static {
height: @input-height-large;
min-height: (@line-height-computed + @font-size-large);
padding: (@padding-large-vertical + 1) @padding-large-horizontal;
font-size: @font-size-large;
line-height: @line-height-large;
}
}
// Form control feedback states
//
// Apply contextual and semantic states to individual form controls.
// FORM FIELD FEEDBACK STATES
// --------------------------
.has-feedback {
// Enable absolute positioning
position: relative;
// Warning
.has-warning {
.form-field-validation(@state-warning-text, @state-warning-text, @state-warning-bg);
// Ensure icons don't overlap text
.form-control {
padding-right: (@input-height-base * 1.25);
}
}
// Error
.has-error {
.form-field-validation(@state-danger-text, @state-danger-text, @state-danger-bg);
// Feedback icon (requires .glyphicon classes)
.form-control-feedback {
position: absolute;
top: 0;
right: 0;
z-index: 2; // Ensure icon is above input groups
display: block;
width: @input-height-base;
height: @input-height-base;
line-height: @input-height-base;
text-align: center;
pointer-events: none;
}
// Success
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
width: @input-height-large;
height: @input-height-large;
line-height: @input-height-large;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
width: @input-height-small;
height: @input-height-small;
line-height: @input-height-small;
}
// Feedback states
.has-success {
.form-field-validation(@state-success-text, @state-success-text, @state-success-bg);
.form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
}
.has-warning {
.form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
}
.has-error {
.form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
}
// Reposition feedback icon if input has visible label above
.has-feedback label {
& ~ .form-control-feedback {
top: (@line-height-computed + 5); // Height of the `label` and its margin
}
&.sr-only ~ .form-control-feedback {
top: 0;
}
}
// HELP TEXT
// ---------
// Help text
//
// Apply to any element you wish to create light text for placement immediately
// below a form control. Use for general help, formatting, or instructional text.
.help-block {
display: block; // account for any element using help-block
@ -283,150 +460,154 @@ input[type="color"] {
}
// Input groups
// --------------------------------------------------
// Base styles
// -------------------------
.input-group {
display: table;
// Undo padding and float of grid classes
&.col {
float: none;
padding-left: 0;
padding-right: 0;
}
input,
select {
width: 100%;
margin-bottom: 0;
}
}
// Display as table-cell
// -------------------------
.input-group-addon,
.input-group-btn,
.input-group input {
display: table-cell;
&:not(:first-child):not(:last-child) {
border-radius: 0;
}
}
// Addon and addon wrapper for buttons
.input-group-addon,
.input-group-btn {
width: 1%;
vertical-align: middle; // Match the inputs
}
// Text input groups
// -------------------------
.input-group-addon {
.box-sizing(border-box);
padding: @padding-base-vertical @padding-base-horizontal;
font-size: @font-size-base;
font-weight: normal;
line-height: @line-height-base;
text-align: center;
text-shadow: 0 1px 0 #fff;
background-color: @gray-lighter;
border: 1px solid #ccc;
border-radius: @border-radius-base;
&.input-small {
padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small;
border-radius: @border-radius-small;
}
&.input-large {
padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large;
border-radius: @border-radius-large;
}
}
// Reset rounded corners
.input-group input:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
.border-right-radius(0);
}
.input-group-addon:first-child {
border-right: 0;
}
.input-group input:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child) {
.border-left-radius(0);
}
.input-group-addon:last-child {
border-left: 0;
}
// Button input groups
// -------------------------
.input-group-btn {
position: relative;
white-space: nowrap;
}
.input-group-btn > .btn {
position: relative;
float: left; // Collapse white-space
+ .btn {
margin-left: -1px;
}
// Bring the "active" button to the front
&:hover,
&:active {
z-index: 2;
}
}
// Inline forms
// --------------------------------------------------
//
// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
// forms begin stacked on extra small (mobile) devices and then go inline when
// viewports reach <768px.
//
// Requires wrapping inputs and labels with `.form-group` for proper display of
// default HTML form controls and our custom form controls (e.g., input groups).
//
// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
.form-inline {
input,
select,
textarea,
.radio,
.checkbox {
display: inline-block;
}
.radio,
.checkbox {
margin-top: 0;
margin-bottom: 0;
// Kick in the inline
@media (min-width: @screen-sm-min) {
// Inline-block all the things for "inline"
.form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
// In navbar-form, allow folks to *not* use `.form-group`
.form-control {
display: inline-block;
width: auto; // Prevent labels from stacking above inputs in `.form-group`
vertical-align: middle;
}
// Make static controls behave like regular ones
.form-control-static {
display: inline-block;
}
.input-group {
display: inline-table;
vertical-align: middle;
.input-group-addon,
.input-group-btn,
.form-control {
width: auto;
}
}
// Input groups need that 100% width though
.input-group > .form-control {
width: 100%;
}
.control-label {
margin-bottom: 0;
vertical-align: middle;
}
// Remove default margin on radios/checkboxes that were used for stacking, and
// then undo the floating of radios and checkboxes to match.
.radio,
.checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
label {
padding-left: 0;
}
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
// Re-override the feedback icon.
.has-feedback .form-control-feedback {
top: 0;
}
}
}
// Horizontal forms
// --------------------------------------------------
// Horizontal forms are built on grid classes.
//
// Horizontal forms are built on grid classes and allow you to create forms with
// labels on the left and inputs on the right.
.form-horizontal {
.row + .row {
margin-top: 15px;
}
.control-label {
padding-top: 6px;
}
}
// Only right aline form labels here when the columns stop stacking
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
// Consistent vertical alignment of radios and checkboxes
//
// Labels also get some reset styles, but that is scoped to a media query below.
.radio,
.checkbox,
.radio-inline,
.checkbox-inline {
margin-top: 0;
margin-bottom: 0;
padding-top: (@padding-base-vertical + 1); // Default padding plus a border
}
// Account for padding we're adding to ensure the alignment and of help text
// and other content below items
.radio,
.checkbox {
min-height: (@line-height-computed + (@padding-base-vertical + 1));
}
// Make form groups behave like rows
.form-group {
.make-row();
}
// Reset spacing and right align labels, but scope to media queries so that
// labels on narrow viewports stack the same as a default form example.
@media (min-width: @screen-sm-min) {
.control-label {
text-align: right;
margin-bottom: 0;
padding-top: (@padding-base-vertical + 1); // Default padding plus a border
}
}
// Validation states
//
// Reposition the icon because it's now within a grid column and columns have
// `position: relative;` on them. Also accounts for the grid gutter padding.
.has-feedback .form-control-feedback {
right: floor((@grid-gutter-width / 2));
}
// Form group sizes
//
// Quick utility class for applying `.input-lg` and `.input-sm` styles to the
// inputs and labels within a `.form-group`.
.form-group-lg {
@media (min-width: @screen-sm-min) {
.control-label {
padding-top: ((@padding-large-vertical * @line-height-large) + 1);
font-size: @font-size-large;
}
}
}
.form-group-sm {
@media (min-width: @screen-sm-min) {
.control-label {
padding-top: (@padding-small-vertical + 1);
font-size: @font-size-small;
}
}
}
}

View File

@ -1,200 +1,305 @@
//
// Glyphicons
// -----------------------------------------------------------------------------
// About
// Glyphicons for Bootstrap
//
// Glyphicons font-based icons require you to include all relevant font files,
// found in the Bootstrap repo under /fonts/. Files are referenced relative to
// the compiled CSS.
//
// Basic usage
//
// Since icons are fonts, they can be placed anywhere text is placed. To use,
// create an inline element with the appropriate classes, like so:
// Since icons are fonts, they can be placed anywhere text is placed and are
// thus automatically sized to match the surrounding child. To use, create an
// inline element with the appropriate classes, like so:
//
// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
//
// Use them in links, buttons, headings, and more.
// Import the fonts
@font-face {
font-family: 'Glyphicons Halflings';
src: url('@{glyphicons-font-path}/glyphiconshalflings-regular.eot');
src: url('@{glyphicons-font-path}/glyphiconshalflings-regular.eot?#iefix') format('embedded-opentype'),
url('@{glyphicons-font-path}/glyphiconshalflings-regular.woff') format('woff'),
url('@{glyphicons-font-path}/glyphiconshalflings-regular.ttf') format('truetype'),
url('@{glyphicons-font-path}/glyphiconshalflings-regular.svg#glyphicons_halflingsregular') format('svg');
src: url('@{icon-font-path}@{icon-font-name}.eot');
src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),
url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');
}
// Catchall baseclass
.glyphicon:before {
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
// Individual icons
.glyphicon-glass:before { content: "\e001"; }
.glyphicon-music:before { content: "\e002"; }
.glyphicon-search:before { content: "\e003"; }
.glyphicon-envelope:before { content: "\2709"; }
.glyphicon-heart:before { content: "\e005"; }
.glyphicon-star:before { content: "\e006"; }
.glyphicon-star-empty:before { content: "\e007"; }
.glyphicon-user:before { content: "\e008"; }
.glyphicon-film:before { content: "\e009"; }
.glyphicon-th-large:before { content: "\e010"; }
.glyphicon-th:before { content: "\e011"; }
.glyphicon-th-list:before { content: "\e012"; }
.glyphicon-ok:before { content: "\e013"; }
.glyphicon-remove:before { content: "\e014"; }
.glyphicon-zoom-in:before { content: "\e015"; }
.glyphicon-zoom-out:before { content: "\e016"; }
.glyphicon-off:before { content: "\e017"; }
.glyphicon-signal:before { content: "\e018"; }
.glyphicon-cog:before { content: "\e019"; }
.glyphicon-trash:before { content: "\e020"; }
.glyphicon-home:before { content: "\e021"; }
.glyphicon-file:before { content: "\e022"; }
.glyphicon-time:before { content: "\e023"; }
.glyphicon-road:before { content: "\e024"; }
.glyphicon-download-alt:before { content: "\e025"; }
.glyphicon-download:before { content: "\e026"; }
.glyphicon-upload:before { content: "\e027"; }
.glyphicon-inbox:before { content: "\e028"; }
.glyphicon-play-circle:before { content: "\e029"; }
.glyphicon-repeat:before { content: "\e030"; }
.glyphicon-refresh:before { content: "\e031"; }
.glyphicon-list-alt:before { content: "\e032"; }
.glyphicon-lock:before { content: "\e033"; }
.glyphicon-flag:before { content: "\e034"; }
.glyphicon-headphones:before { content: "\e035"; }
.glyphicon-volume-off:before { content: "\e036"; }
.glyphicon-volume-down:before { content: "\e037"; }
.glyphicon-volume-up:before { content: "\e038"; }
.glyphicon-qrcode:before { content: "\e039"; }
.glyphicon-barcode:before { content: "\e040"; }
.glyphicon-tag:before { content: "\e041"; }
.glyphicon-tags:before { content: "\e042"; }
.glyphicon-book:before { content: "\e043"; }
.glyphicon-bookmark:before { content: "\e044"; }
.glyphicon-print:before { content: "\e045"; }
.glyphicon-camera:before { content: "\e046"; }
.glyphicon-font:before { content: "\e047"; }
.glyphicon-bold:before { content: "\e048"; }
.glyphicon-italic:before { content: "\e049"; }
.glyphicon-text-height:before { content: "\e050"; }
.glyphicon-text-width:before { content: "\e051"; }
.glyphicon-align-left:before { content: "\e052"; }
.glyphicon-align-center:before { content: "\e053"; }
.glyphicon-align-right:before { content: "\e054"; }
.glyphicon-align-justify:before { content: "\e055"; }
.glyphicon-list:before { content: "\e056"; }
.glyphicon-indent-left:before { content: "\e057"; }
.glyphicon-indent-right:before { content: "\e058"; }
.glyphicon-facetime-video:before { content: "\e059"; }
.glyphicon-picture:before { content: "\e060"; }
.glyphicon-pencil:before { content: "\270f"; }
.glyphicon-map-marker:before { content: "\e062"; }
.glyphicon-adjust:before { content: "\e063"; }
.glyphicon-tint:before { content: "\e064"; }
.glyphicon-edit:before { content: "\e065"; }
.glyphicon-share:before { content: "\e066"; }
.glyphicon-check:before { content: "\e067"; }
.glyphicon-move:before { content: "\e068"; }
.glyphicon-step-backward:before { content: "\e069"; }
.glyphicon-fast-backward:before { content: "\e070"; }
.glyphicon-backward:before { content: "\e071"; }
.glyphicon-play:before { content: "\e072"; }
.glyphicon-pause:before { content: "\e073"; }
.glyphicon-stop:before { content: "\e074"; }
.glyphicon-forward:before { content: "\e075"; }
.glyphicon-fast-forward:before { content: "\e076"; }
.glyphicon-step-forward:before { content: "\e077"; }
.glyphicon-eject:before { content: "\e078"; }
.glyphicon-chevron-left:before { content: "\e079"; }
.glyphicon-chevron-right:before { content: "\e080"; }
.glyphicon-plus-sign:before { content: "\e081"; }
.glyphicon-minus-sign:before { content: "\e082"; }
.glyphicon-remove-sign:before { content: "\e083"; }
.glyphicon-ok-sign:before { content: "\e084"; }
.glyphicon-question-sign:before { content: "\e085"; }
.glyphicon-info-sign:before { content: "\e086"; }
.glyphicon-screenshot:before { content: "\e087"; }
.glyphicon-remove-circle:before { content: "\e088"; }
.glyphicon-ok-circle:before { content: "\e089"; }
.glyphicon-ban-circle:before { content: "\e090"; }
.glyphicon-arrow-left:before { content: "\e091"; }
.glyphicon-arrow-right:before { content: "\e092"; }
.glyphicon-arrow-up:before { content: "\e093"; }
.glyphicon-arrow-down:before { content: "\e094"; }
.glyphicon-share-alt:before { content: "\e095"; }
.glyphicon-resize-full:before { content: "\e096"; }
.glyphicon-resize-small:before { content: "\e097"; }
.glyphicon-plus:before { content: "\002b"; }
.glyphicon-minus:before { content: "\2212"; }
.glyphicon-asterisk:before { content: "\002a"; }
.glyphicon-exclamation-sign:before { content: "\e101"; }
.glyphicon-gift:before { content: "\e102"; }
.glyphicon-leaf:before { content: "\e103"; }
.glyphicon-fire:before { content: "\e104"; }
.glyphicon-eye-open:before { content: "\e105"; }
.glyphicon-eye-close:before { content: "\e106"; }
.glyphicon-warning-sign:before { content: "\e107"; }
.glyphicon-plane:before { content: "\e108"; }
.glyphicon-calendar:before { content: "\e109"; }
.glyphicon-random:before { content: "\e110"; }
.glyphicon-comment:before { content: "\e111"; }
.glyphicon-magnet:before { content: "\e112"; }
.glyphicon-chevron-up:before { content: "\e113"; }
.glyphicon-chevron-down:before { content: "\e114"; }
.glyphicon-retweet:before { content: "\e115"; }
.glyphicon-shopping-cart:before { content: "\e116"; }
.glyphicon-folder-close:before { content: "\e117"; }
.glyphicon-folder-open:before { content: "\e118"; }
.glyphicon-resize-vertical:before { content: "\e119"; }
.glyphicon-resize-horizontal:before { content: "\e120"; }
.glyphicon-hdd:before { content: "\e121"; }
.glyphicon-bullhorn:before { content: "\e122"; }
.glyphicon-bell:before { content: "\e123"; }
.glyphicon-certificate:before { content: "\e124"; }
.glyphicon-thumbs-up:before { content: "\e125"; }
.glyphicon-thumbs-down:before { content: "\e126"; }
.glyphicon-hand-right:before { content: "\e127"; }
.glyphicon-hand-left:before { content: "\e128"; }
.glyphicon-hand-up:before { content: "\e129"; }
.glyphicon-hand-down:before { content: "\e130"; }
.glyphicon-circle-arrow-right:before { content: "\e131"; }
.glyphicon-circle-arrow-left:before { content: "\e132"; }
.glyphicon-circle-arrow-up:before { content: "\e133"; }
.glyphicon-circle-arrow-down:before { content: "\e134"; }
.glyphicon-globe:before { content: "\e135"; }
.glyphicon-wrench:before { content: "\e136"; }
.glyphicon-tasks:before { content: "\e137"; }
.glyphicon-filter:before { content: "\e138"; }
.glyphicon-briefcase:before { content: "\e139"; }
.glyphicon-fullscreen:before { content: "\e140"; }
.glyphicon-dashboard:before { content: "\e141"; }
.glyphicon-paperclip:before { content: "\e142"; }
.glyphicon-heart-empty:before { content: "\e143"; }
.glyphicon-link:before { content: "\e144"; }
.glyphicon-phone:before { content: "\e145"; }
.glyphicon-pushpin:before { content: "\e146"; }
.glyphicon-euro:before { content: "\20ac"; }
.glyphicon-usd:before { content: "\e148"; }
.glyphicon-gbp:before { content: "\e149"; }
.glyphicon-sort:before { content: "\e150"; }
.glyphicon-sort-by-alphabet:before { content: "\e151"; }
.glyphicon-sort-by-alphabet-alt:before { content: "\e152"; }
.glyphicon-sort-by-order:before { content: "\e153"; }
.glyphicon-sort-by-order-alt:before { content: "\e154"; }
.glyphicon-sort-by-attributes:before { content: "\e155"; }
.glyphicon-sort-by-attributes-alt:before { content: "\e156"; }
.glyphicon-unchecked:before { content: "\e157"; }
.glyphicon-expand:before { content: "\e158"; }
.glyphicon-collapse:before { content: "\e159"; }
.glyphicon-collapse-top:before { content: "\e160"; }
.glyphicon-asterisk { &:before { content: "\002a"; } }
.glyphicon-plus { &:before { content: "\002b"; } }
.glyphicon-euro,
.glyphicon-eur { &:before { content: "\20ac"; } }
.glyphicon-minus { &:before { content: "\2212"; } }
.glyphicon-cloud { &:before { content: "\2601"; } }
.glyphicon-envelope { &:before { content: "\2709"; } }
.glyphicon-pencil { &:before { content: "\270f"; } }
.glyphicon-glass { &:before { content: "\e001"; } }
.glyphicon-music { &:before { content: "\e002"; } }
.glyphicon-search { &:before { content: "\e003"; } }
.glyphicon-heart { &:before { content: "\e005"; } }
.glyphicon-star { &:before { content: "\e006"; } }
.glyphicon-star-empty { &:before { content: "\e007"; } }
.glyphicon-user { &:before { content: "\e008"; } }
.glyphicon-film { &:before { content: "\e009"; } }
.glyphicon-th-large { &:before { content: "\e010"; } }
.glyphicon-th { &:before { content: "\e011"; } }
.glyphicon-th-list { &:before { content: "\e012"; } }
.glyphicon-ok { &:before { content: "\e013"; } }
.glyphicon-remove { &:before { content: "\e014"; } }
.glyphicon-zoom-in { &:before { content: "\e015"; } }
.glyphicon-zoom-out { &:before { content: "\e016"; } }
.glyphicon-off { &:before { content: "\e017"; } }
.glyphicon-signal { &:before { content: "\e018"; } }
.glyphicon-cog { &:before { content: "\e019"; } }
.glyphicon-trash { &:before { content: "\e020"; } }
.glyphicon-home { &:before { content: "\e021"; } }
.glyphicon-file { &:before { content: "\e022"; } }
.glyphicon-time { &:before { content: "\e023"; } }
.glyphicon-road { &:before { content: "\e024"; } }
.glyphicon-download-alt { &:before { content: "\e025"; } }
.glyphicon-download { &:before { content: "\e026"; } }
.glyphicon-upload { &:before { content: "\e027"; } }
.glyphicon-inbox { &:before { content: "\e028"; } }
.glyphicon-play-circle { &:before { content: "\e029"; } }
.glyphicon-repeat { &:before { content: "\e030"; } }
.glyphicon-refresh { &:before { content: "\e031"; } }
.glyphicon-list-alt { &:before { content: "\e032"; } }
.glyphicon-lock { &:before { content: "\e033"; } }
.glyphicon-flag { &:before { content: "\e034"; } }
.glyphicon-headphones { &:before { content: "\e035"; } }
.glyphicon-volume-off { &:before { content: "\e036"; } }
.glyphicon-volume-down { &:before { content: "\e037"; } }
.glyphicon-volume-up { &:before { content: "\e038"; } }
.glyphicon-qrcode { &:before { content: "\e039"; } }
.glyphicon-barcode { &:before { content: "\e040"; } }
.glyphicon-tag { &:before { content: "\e041"; } }
.glyphicon-tags { &:before { content: "\e042"; } }
.glyphicon-book { &:before { content: "\e043"; } }
.glyphicon-bookmark { &:before { content: "\e044"; } }
.glyphicon-print { &:before { content: "\e045"; } }
.glyphicon-camera { &:before { content: "\e046"; } }
.glyphicon-font { &:before { content: "\e047"; } }
.glyphicon-bold { &:before { content: "\e048"; } }
.glyphicon-italic { &:before { content: "\e049"; } }
.glyphicon-text-height { &:before { content: "\e050"; } }
.glyphicon-text-width { &:before { content: "\e051"; } }
.glyphicon-align-left { &:before { content: "\e052"; } }
.glyphicon-align-center { &:before { content: "\e053"; } }
.glyphicon-align-right { &:before { content: "\e054"; } }
.glyphicon-align-justify { &:before { content: "\e055"; } }
.glyphicon-list { &:before { content: "\e056"; } }
.glyphicon-indent-left { &:before { content: "\e057"; } }
.glyphicon-indent-right { &:before { content: "\e058"; } }
.glyphicon-facetime-video { &:before { content: "\e059"; } }
.glyphicon-picture { &:before { content: "\e060"; } }
.glyphicon-map-marker { &:before { content: "\e062"; } }
.glyphicon-adjust { &:before { content: "\e063"; } }
.glyphicon-tint { &:before { content: "\e064"; } }
.glyphicon-edit { &:before { content: "\e065"; } }
.glyphicon-share { &:before { content: "\e066"; } }
.glyphicon-check { &:before { content: "\e067"; } }
.glyphicon-move { &:before { content: "\e068"; } }
.glyphicon-step-backward { &:before { content: "\e069"; } }
.glyphicon-fast-backward { &:before { content: "\e070"; } }
.glyphicon-backward { &:before { content: "\e071"; } }
.glyphicon-play { &:before { content: "\e072"; } }
.glyphicon-pause { &:before { content: "\e073"; } }
.glyphicon-stop { &:before { content: "\e074"; } }
.glyphicon-forward { &:before { content: "\e075"; } }
.glyphicon-fast-forward { &:before { content: "\e076"; } }
.glyphicon-step-forward { &:before { content: "\e077"; } }
.glyphicon-eject { &:before { content: "\e078"; } }
.glyphicon-chevron-left { &:before { content: "\e079"; } }
.glyphicon-chevron-right { &:before { content: "\e080"; } }
.glyphicon-plus-sign { &:before { content: "\e081"; } }
.glyphicon-minus-sign { &:before { content: "\e082"; } }
.glyphicon-remove-sign { &:before { content: "\e083"; } }
.glyphicon-ok-sign { &:before { content: "\e084"; } }
.glyphicon-question-sign { &:before { content: "\e085"; } }
.glyphicon-info-sign { &:before { content: "\e086"; } }
.glyphicon-screenshot { &:before { content: "\e087"; } }
.glyphicon-remove-circle { &:before { content: "\e088"; } }
.glyphicon-ok-circle { &:before { content: "\e089"; } }
.glyphicon-ban-circle { &:before { content: "\e090"; } }
.glyphicon-arrow-left { &:before { content: "\e091"; } }
.glyphicon-arrow-right { &:before { content: "\e092"; } }
.glyphicon-arrow-up { &:before { content: "\e093"; } }
.glyphicon-arrow-down { &:before { content: "\e094"; } }
.glyphicon-share-alt { &:before { content: "\e095"; } }
.glyphicon-resize-full { &:before { content: "\e096"; } }
.glyphicon-resize-small { &:before { content: "\e097"; } }
.glyphicon-exclamation-sign { &:before { content: "\e101"; } }
.glyphicon-gift { &:before { content: "\e102"; } }
.glyphicon-leaf { &:before { content: "\e103"; } }
.glyphicon-fire { &:before { content: "\e104"; } }
.glyphicon-eye-open { &:before { content: "\e105"; } }
.glyphicon-eye-close { &:before { content: "\e106"; } }
.glyphicon-warning-sign { &:before { content: "\e107"; } }
.glyphicon-plane { &:before { content: "\e108"; } }
.glyphicon-calendar { &:before { content: "\e109"; } }
.glyphicon-random { &:before { content: "\e110"; } }
.glyphicon-comment { &:before { content: "\e111"; } }
.glyphicon-magnet { &:before { content: "\e112"; } }
.glyphicon-chevron-up { &:before { content: "\e113"; } }
.glyphicon-chevron-down { &:before { content: "\e114"; } }
.glyphicon-retweet { &:before { content: "\e115"; } }
.glyphicon-shopping-cart { &:before { content: "\e116"; } }
.glyphicon-folder-close { &:before { content: "\e117"; } }
.glyphicon-folder-open { &:before { content: "\e118"; } }
.glyphicon-resize-vertical { &:before { content: "\e119"; } }
.glyphicon-resize-horizontal { &:before { content: "\e120"; } }
.glyphicon-hdd { &:before { content: "\e121"; } }
.glyphicon-bullhorn { &:before { content: "\e122"; } }
.glyphicon-bell { &:before { content: "\e123"; } }
.glyphicon-certificate { &:before { content: "\e124"; } }
.glyphicon-thumbs-up { &:before { content: "\e125"; } }
.glyphicon-thumbs-down { &:before { content: "\e126"; } }
.glyphicon-hand-right { &:before { content: "\e127"; } }
.glyphicon-hand-left { &:before { content: "\e128"; } }
.glyphicon-hand-up { &:before { content: "\e129"; } }
.glyphicon-hand-down { &:before { content: "\e130"; } }
.glyphicon-circle-arrow-right { &:before { content: "\e131"; } }
.glyphicon-circle-arrow-left { &:before { content: "\e132"; } }
.glyphicon-circle-arrow-up { &:before { content: "\e133"; } }
.glyphicon-circle-arrow-down { &:before { content: "\e134"; } }
.glyphicon-globe { &:before { content: "\e135"; } }
.glyphicon-wrench { &:before { content: "\e136"; } }
.glyphicon-tasks { &:before { content: "\e137"; } }
.glyphicon-filter { &:before { content: "\e138"; } }
.glyphicon-briefcase { &:before { content: "\e139"; } }
.glyphicon-fullscreen { &:before { content: "\e140"; } }
.glyphicon-dashboard { &:before { content: "\e141"; } }
.glyphicon-paperclip { &:before { content: "\e142"; } }
.glyphicon-heart-empty { &:before { content: "\e143"; } }
.glyphicon-link { &:before { content: "\e144"; } }
.glyphicon-phone { &:before { content: "\e145"; } }
.glyphicon-pushpin { &:before { content: "\e146"; } }
.glyphicon-usd { &:before { content: "\e148"; } }
.glyphicon-gbp { &:before { content: "\e149"; } }
.glyphicon-sort { &:before { content: "\e150"; } }
.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } }
.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } }
.glyphicon-sort-by-order { &:before { content: "\e153"; } }
.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } }
.glyphicon-sort-by-attributes { &:before { content: "\e155"; } }
.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
.glyphicon-unchecked { &:before { content: "\e157"; } }
.glyphicon-expand { &:before { content: "\e158"; } }
.glyphicon-collapse-down { &:before { content: "\e159"; } }
.glyphicon-collapse-up { &:before { content: "\e160"; } }
.glyphicon-log-in { &:before { content: "\e161"; } }
.glyphicon-flash { &:before { content: "\e162"; } }
.glyphicon-log-out { &:before { content: "\e163"; } }
.glyphicon-new-window { &:before { content: "\e164"; } }
.glyphicon-record { &:before { content: "\e165"; } }
.glyphicon-save { &:before { content: "\e166"; } }
.glyphicon-open { &:before { content: "\e167"; } }
.glyphicon-saved { &:before { content: "\e168"; } }
.glyphicon-import { &:before { content: "\e169"; } }
.glyphicon-export { &:before { content: "\e170"; } }
.glyphicon-send { &:before { content: "\e171"; } }
.glyphicon-floppy-disk { &:before { content: "\e172"; } }
.glyphicon-floppy-saved { &:before { content: "\e173"; } }
.glyphicon-floppy-remove { &:before { content: "\e174"; } }
.glyphicon-floppy-save { &:before { content: "\e175"; } }
.glyphicon-floppy-open { &:before { content: "\e176"; } }
.glyphicon-credit-card { &:before { content: "\e177"; } }
.glyphicon-transfer { &:before { content: "\e178"; } }
.glyphicon-cutlery { &:before { content: "\e179"; } }
.glyphicon-header { &:before { content: "\e180"; } }
.glyphicon-compressed { &:before { content: "\e181"; } }
.glyphicon-earphone { &:before { content: "\e182"; } }
.glyphicon-phone-alt { &:before { content: "\e183"; } }
.glyphicon-tower { &:before { content: "\e184"; } }
.glyphicon-stats { &:before { content: "\e185"; } }
.glyphicon-sd-video { &:before { content: "\e186"; } }
.glyphicon-hd-video { &:before { content: "\e187"; } }
.glyphicon-subtitles { &:before { content: "\e188"; } }
.glyphicon-sound-stereo { &:before { content: "\e189"; } }
.glyphicon-sound-dolby { &:before { content: "\e190"; } }
.glyphicon-sound-5-1 { &:before { content: "\e191"; } }
.glyphicon-sound-6-1 { &:before { content: "\e192"; } }
.glyphicon-sound-7-1 { &:before { content: "\e193"; } }
.glyphicon-copyright-mark { &:before { content: "\e194"; } }
.glyphicon-registration-mark { &:before { content: "\e195"; } }
.glyphicon-cloud-download { &:before { content: "\e197"; } }
.glyphicon-cloud-upload { &:before { content: "\e198"; } }
.glyphicon-tree-conifer { &:before { content: "\e199"; } }
.glyphicon-tree-deciduous { &:before { content: "\e200"; } }
.glyphicon-cd { &:before { content: "\e201"; } }
.glyphicon-save-file { &:before { content: "\e202"; } }
.glyphicon-open-file { &:before { content: "\e203"; } }
.glyphicon-level-up { &:before { content: "\e204"; } }
.glyphicon-copy { &:before { content: "\e205"; } }
.glyphicon-paste { &:before { content: "\e206"; } }
// The following 2 Glyphicons are omitted for the time being because
// they currently use Unicode codepoints that are outside the
// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle
// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.
// Notably, the bug affects some older versions of the Android Browser.
// More info: https://github.com/twbs/bootstrap/issues/10106
// .glyphicon-door { &:before { content: "\1f6aa"; } }
// .glyphicon-key { &:before { content: "\1f511"; } }
.glyphicon-alert { &:before { content: "\e209"; } }
.glyphicon-equalizer { &:before { content: "\e210"; } }
.glyphicon-king { &:before { content: "\e211"; } }
.glyphicon-queen { &:before { content: "\e212"; } }
.glyphicon-pawn { &:before { content: "\e213"; } }
.glyphicon-bishop { &:before { content: "\e214"; } }
.glyphicon-knight { &:before { content: "\e215"; } }
.glyphicon-baby-formula { &:before { content: "\e216"; } }
.glyphicon-tent { &:before { content: "\26fa"; } }
.glyphicon-blackboard { &:before { content: "\e218"; } }
.glyphicon-bed { &:before { content: "\e219"; } }
.glyphicon-apple { &:before { content: "\f8ff"; } }
.glyphicon-erase { &:before { content: "\e221"; } }
.glyphicon-hourglass { &:before { content: "\231b"; } }
.glyphicon-lamp { &:before { content: "\e223"; } }
.glyphicon-duplicate { &:before { content: "\e224"; } }
.glyphicon-piggy-bank { &:before { content: "\e225"; } }
.glyphicon-scissors { &:before { content: "\e226"; } }
.glyphicon-bitcoin { &:before { content: "\e227"; } }
.glyphicon-btc { &:before { content: "\e227"; } }
.glyphicon-xbt { &:before { content: "\e227"; } }
.glyphicon-yen { &:before { content: "\00a5"; } }
.glyphicon-jpy { &:before { content: "\00a5"; } }
.glyphicon-ruble { &:before { content: "\20bd"; } }
.glyphicon-rub { &:before { content: "\20bd"; } }
.glyphicon-scale { &:before { content: "\e230"; } }
.glyphicon-ice-lolly { &:before { content: "\e231"; } }
.glyphicon-ice-lolly-tasted { &:before { content: "\e232"; } }
.glyphicon-education { &:before { content: "\e233"; } }
.glyphicon-option-horizontal { &:before { content: "\e234"; } }
.glyphicon-option-vertical { &:before { content: "\e235"; } }
.glyphicon-menu-hamburger { &:before { content: "\e236"; } }
.glyphicon-modal-window { &:before { content: "\e237"; } }
.glyphicon-oil { &:before { content: "\e238"; } }
.glyphicon-grain { &:before { content: "\e239"; } }
.glyphicon-sunglasses { &:before { content: "\e240"; } }
.glyphicon-text-size { &:before { content: "\e241"; } }
.glyphicon-text-color { &:before { content: "\e242"; } }
.glyphicon-text-background { &:before { content: "\e243"; } }
.glyphicon-object-align-top { &:before { content: "\e244"; } }
.glyphicon-object-align-bottom { &:before { content: "\e245"; } }
.glyphicon-object-align-horizontal{ &:before { content: "\e246"; } }
.glyphicon-object-align-left { &:before { content: "\e247"; } }
.glyphicon-object-align-vertical { &:before { content: "\e248"; } }
.glyphicon-object-align-right { &:before { content: "\e249"; } }
.glyphicon-triangle-right { &:before { content: "\e250"; } }
.glyphicon-triangle-left { &:before { content: "\e251"; } }
.glyphicon-triangle-bottom { &:before { content: "\e252"; } }
.glyphicon-triangle-top { &:before { content: "\e253"; } }
.glyphicon-console { &:before { content: "\e254"; } }
.glyphicon-superscript { &:before { content: "\e255"; } }
.glyphicon-subscript { &:before { content: "\e256"; } }
.glyphicon-menu-left { &:before { content: "\e257"; } }
.glyphicon-menu-right { &:before { content: "\e258"; } }
.glyphicon-menu-down { &:before { content: "\e259"; } }
.glyphicon-menu-up { &:before { content: "\e260"; } }

View File

@ -2,203 +2,83 @@
// Grid system
// --------------------------------------------------
// Set the container width, and override it for fixed navbars in media queries
// Container widths
//
// Set the container width, and override it for fixed navbars in media queries.
.container {
.container-fixed();
@media (min-width: @screen-sm-min) {
width: @container-sm;
}
@media (min-width: @screen-md-min) {
width: @container-md;
}
@media (min-width: @screen-lg-min) {
width: @container-lg;
}
}
// Fluid container
//
// Utilizes the mixin meant for fixed width containers, but without any defined
// width for fluid, full width layouts.
.container-fluid {
.container-fixed();
}
// Mobile-first defaults
// Row
//
// Rows contain and clear the floats of your columns.
.row {
.make-row();
}
// Columns
//
// Common styles for small and large grid columns
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12,
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12 {
position: relative;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: (@grid-gutter-width / 2);
padding-right: (@grid-gutter-width / 2);
}
.make-grid-columns();
// Extra small grid
//
// Container and grid column sizing
// Columns, offsets, pushes, and pulls for extra small devices like
// smartphones.
.make-grid(xs);
// Small grid
//
// Columns, offsets, pushes, and pulls for the small device range, from phones
// to tablets.
// Tiny device columns (smartphones)
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12 {
float: left;
}
.col-1 { width: percentage((1 / @grid-columns)); }
.col-2 { width: percentage((2 / @grid-columns)); }
.col-3 { width: percentage((3 / @grid-columns)); }
.col-4 { width: percentage((4 / @grid-columns)); }
.col-5 { width: percentage((5 / @grid-columns)); }
.col-6 { width: percentage((6 / @grid-columns)); }
.col-7 { width: percentage((7 / @grid-columns)); }
.col-8 { width: percentage((8 / @grid-columns)); }
.col-9 { width: percentage((9 / @grid-columns)); }
.col-10 { width: percentage((10/ @grid-columns)); }
.col-11 { width: percentage((11/ @grid-columns)); }
.col-12 { width: 100%; }
// Small device columns (phones to tablets)
@media (min-width: @screen-tablet) {
.container {
max-width: @container-tablet;
}
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12 {
float: left;
}
.col-sm-1 { width: percentage((1 / @grid-columns)); }
.col-sm-2 { width: percentage((2 / @grid-columns)); }
.col-sm-3 { width: percentage((3 / @grid-columns)); }
.col-sm-4 { width: percentage((4 / @grid-columns)); }
.col-sm-5 { width: percentage((5 / @grid-columns)); }
.col-sm-6 { width: percentage((6 / @grid-columns)); }
.col-sm-7 { width: percentage((7 / @grid-columns)); }
.col-sm-8 { width: percentage((8 / @grid-columns)); }
.col-sm-9 { width: percentage((9 / @grid-columns)); }
.col-sm-10 { width: percentage((10/ @grid-columns)); }
.col-sm-11 { width: percentage((11/ @grid-columns)); }
.col-sm-12 { width: 100%; }
// Push and pull columns for source order changes
.col-push-1 { left: percentage((1 / @grid-columns)); }
.col-push-2 { left: percentage((2 / @grid-columns)); }
.col-push-3 { left: percentage((3 / @grid-columns)); }
.col-push-4 { left: percentage((4 / @grid-columns)); }
.col-push-5 { left: percentage((5 / @grid-columns)); }
.col-push-6 { left: percentage((6 / @grid-columns)); }
.col-push-7 { left: percentage((7 / @grid-columns)); }
.col-push-8 { left: percentage((8 / @grid-columns)); }
.col-push-9 { left: percentage((9 / @grid-columns)); }
.col-push-10 { left: percentage((10/ @grid-columns)); }
.col-push-11 { left: percentage((11/ @grid-columns)); }
.col-pull-1 { right: percentage((1 / @grid-columns)); }
.col-pull-2 { right: percentage((2 / @grid-columns)); }
.col-pull-3 { right: percentage((3 / @grid-columns)); }
.col-pull-4 { right: percentage((4 / @grid-columns)); }
.col-pull-5 { right: percentage((5 / @grid-columns)); }
.col-pull-6 { right: percentage((6 / @grid-columns)); }
.col-pull-7 { right: percentage((7 / @grid-columns)); }
.col-pull-8 { right: percentage((8 / @grid-columns)); }
.col-pull-9 { right: percentage((9 / @grid-columns)); }
.col-pull-10 { right: percentage((10/ @grid-columns)); }
.col-pull-11 { right: percentage((11/ @grid-columns)); }
@media (min-width: @screen-sm-min) {
.make-grid(sm);
}
// Medium and large device columns (desktop and up)
@media (min-width: @screen-desktop) {
.container {
max-width: @container-desktop;
}
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12 {
float: left;
}
.col-lg-1 { width: percentage((1 / @grid-columns)); }
.col-lg-2 { width: percentage((2 / @grid-columns)); }
.col-lg-3 { width: percentage((3 / @grid-columns)); }
.col-lg-4 { width: percentage((4 / @grid-columns)); }
.col-lg-5 { width: percentage((5 / @grid-columns)); }
.col-lg-6 { width: percentage((6 / @grid-columns)); }
.col-lg-7 { width: percentage((7 / @grid-columns)); }
.col-lg-8 { width: percentage((8 / @grid-columns)); }
.col-lg-9 { width: percentage((9 / @grid-columns)); }
.col-lg-10 { width: percentage((10/ @grid-columns)); }
.col-lg-11 { width: percentage((11/ @grid-columns)); }
.col-lg-12 { width: 100%; }
// Offsets
.col-offset-1 { margin-left: percentage((1 / @grid-columns)); }
.col-offset-2 { margin-left: percentage((2 / @grid-columns)); }
.col-offset-3 { margin-left: percentage((3 / @grid-columns)); }
.col-offset-4 { margin-left: percentage((4 / @grid-columns)); }
.col-offset-5 { margin-left: percentage((5 / @grid-columns)); }
.col-offset-6 { margin-left: percentage((6 / @grid-columns)); }
.col-offset-7 { margin-left: percentage((7 / @grid-columns)); }
.col-offset-8 { margin-left: percentage((8 / @grid-columns)); }
.col-offset-9 { margin-left: percentage((9 / @grid-columns)); }
.col-offset-10 { margin-left: percentage((10/ @grid-columns)); }
.col-offset-11 { margin-left: percentage((11/ @grid-columns)); }
// Medium grid
//
// Columns, offsets, pushes, and pulls for the desktop device range.
@media (min-width: @screen-md-min) {
.make-grid(md);
}
// Large desktops and up
@media (min-width: @screen-large-desktop) {
.container {
max-width: @container-large-desktop;
}
// Large grid
//
// Columns, offsets, pushes, and pulls for the large desktop device range.
@media (min-width: @screen-lg-min) {
.make-grid(lg);
}

View File

@ -0,0 +1,167 @@
//
// Input groups
// --------------------------------------------------
// Base styles
// -------------------------
.input-group {
position: relative; // For dropdowns
display: table;
border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
// Undo padding and float of grid classes
&[class*="col-"] {
float: none;
padding-left: 0;
padding-right: 0;
}
.form-control {
// Ensure that the input is always above the *appended* addon button for
// proper border colors.
position: relative;
z-index: 2;
// IE9 fubars the placeholder attribute in text inputs and the arrows on
// select elements in input groups. To fix it, we float the input. Details:
// https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
float: left;
width: 100%;
margin-bottom: 0;
}
}
// Sizing options
//
// Remix the default form control sizing classes into new ones for easier
// manipulation.
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
.input-lg();
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
.input-sm();
}
// Display as table-cell
// -------------------------
.input-group-addon,
.input-group-btn,
.input-group .form-control {
display: table-cell;
&:not(:first-child):not(:last-child) {
border-radius: 0;
}
}
// Addon and addon wrapper for buttons
.input-group-addon,
.input-group-btn {
width: 1%;
white-space: nowrap;
vertical-align: middle; // Match the inputs
}
// Text input groups
// -------------------------
.input-group-addon {
padding: @padding-base-vertical @padding-base-horizontal;
font-size: @font-size-base;
font-weight: normal;
line-height: 1;
color: @input-color;
text-align: center;
background-color: @input-group-addon-bg;
border: 1px solid @input-group-addon-border-color;
border-radius: @input-border-radius;
// Sizing
&.input-sm {
padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small;
border-radius: @input-border-radius-small;
}
&.input-lg {
padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large;
border-radius: @input-border-radius-large;
}
// Nuke default margins from checkboxes and radios to vertically center within.
input[type="radio"],
input[type="checkbox"] {
margin-top: 0;
}
}
// Reset rounded corners
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
.border-right-radius(0);
}
.input-group-addon:first-child {
border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
.border-left-radius(0);
}
.input-group-addon:last-child {
border-left: 0;
}
// Button input groups
// -------------------------
.input-group-btn {
position: relative;
// Jankily prevent input button groups from wrapping with `white-space` and
// `font-size` in combination with `inline-block` on buttons.
font-size: 0;
white-space: nowrap;
// Negative margin for spacing, position for bringing hovered/focused/actived
// element above the siblings.
> .btn {
position: relative;
+ .btn {
margin-left: -1px;
}
// Bring the "active" button to the front
&:hover,
&:focus,
&:active {
z-index: 2;
}
}
// Negative margin to only have a 1px border between the two
&:first-child {
> .btn,
> .btn-group {
margin-right: -1px;
}
}
&:last-child {
> .btn,
> .btn-group {
z-index: 2;
margin-left: -1px;
}
}
}

View File

@ -4,29 +4,49 @@
.jumbotron {
padding: 30px;
margin-bottom: 30px;
font-size: (@font-size-base * 1.5);
font-weight: 200;
line-height: (@line-height-base * 1.5);
color: @jumbotron-lead-color;
padding-top: @jumbotron-padding;
padding-bottom: @jumbotron-padding;
margin-bottom: @jumbotron-padding;
color: @jumbotron-color;
background-color: @jumbotron-bg;
h1 {
line-height: 1;
h1,
.h1 {
color: @jumbotron-heading-color;
}
p {
line-height: 1.4;
margin-bottom: (@jumbotron-padding / 2);
font-size: @jumbotron-font-size;
font-weight: 200;
}
}
@media screen and (min-width: @screen-tablet) {
.jumbotron {
padding: 50px 60px;
border-radius: @border-radius-large; // Only round corners at higher resolutions
> hr {
border-top-color: darken(@jumbotron-bg, 10%);
}
h1 {
font-size: (@font-size-base * 4.5);
.container &,
.container-fluid & {
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
}
.container {
max-width: 100%;
}
@media screen and (min-width: @screen-sm-min) {
padding-top: (@jumbotron-padding * 1.6);
padding-bottom: (@jumbotron-padding * 1.6);
.container &,
.container-fluid & {
padding-left: (@jumbotron-padding * 2);
padding-right: (@jumbotron-padding * 2);
}
h1,
.h1 {
font-size: @jumbotron-heading-font-size;
}
}
}

View File

@ -4,67 +4,61 @@
.label {
display: inline;
padding: .25em .6em;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 500;
font-weight: bold;
line-height: 1;
color: #fff;
color: @label-color;
text-align: center;
white-space: nowrap;
vertical-align: middle;
background-color: @gray-light;
vertical-align: baseline;
border-radius: .25em;
// Add hover effects, but only for links
&[href] {
// Add hover effects, but only for links
a& {
&:hover,
&:focus {
color: #fff;
color: @label-link-hover-color;
text-decoration: none;
cursor: pointer;
background-color: darken(@gray-light, 10%);
}
}
// Empty labels collapse automatically (not available in IE8)
&:empty {
display: none;
}
// Quick fix for labels in buttons
.btn & {
position: relative;
top: -1px;
}
}
// Colors
// Contextual variations (linked labels get darker on :hover)
.label-danger {
background-color: @label-danger-bg;
&[href] {
&:hover,
&:focus {
background-color: darken(@label-danger-bg, 10%);
}
}
.label-default {
.label-variant(@label-default-bg);
}
.label-primary {
.label-variant(@label-primary-bg);
}
.label-success {
background-color: @label-success-bg;
&[href] {
&:hover,
&:focus {
background-color: darken(@label-success-bg, 10%);
}
}
}
.label-warning {
background-color: @label-warning-bg;
&[href] {
&:hover,
&:focus {
background-color: darken(@label-warning-bg, 10%);
}
}
.label-variant(@label-success-bg);
}
.label-info {
background-color: @label-info-bg;
&[href] {
&:hover,
&:focus {
background-color: darken(@label-info-bg, 10%);
}
}
}
.label-variant(@label-info-bg);
}
.label-warning {
.label-variant(@label-warning-bg);
}
.label-danger {
.label-variant(@label-danger-bg);
}

View File

@ -2,39 +2,123 @@
// List groups
// --------------------------------------------------
// Base class
//
// Easily usable on <ul>, <ol>, or <div>.
.list-group {
// No need to set list-style: none; since .list-group-item is block level
margin-bottom: 20px;
padding-left: 0; // reset padding because ul and ol
background-color: @list-group-bg;
}
// Individual list items
// -------------------------
//
// Use on `li`s or `div`s within the `.list-group` parent.
.list-group-item {
position: relative;
display: block;
padding: 10px 30px 10px 15px;
padding: 10px 15px;
// Place the border on the list items and negative margin up for better styling
margin-bottom: -1px;
background-color: @list-group-bg;
border: 1px solid @list-group-border;
// Round the first and last items
&:first-child {
.border-top-radius(@list-group-border-radius);
}
&:last-child {
margin-bottom: 0;
.border-bottom-radius(@list-group-border-radius);
}
}
// Round the first and last items
.list-group-item:first-child {
.border-top-radius(@border-radius-base);
// Interactive list items
//
// Use anchor or button elements instead of `li`s or `div`s to create interactive items.
// Includes an extra `.active` modifier class for showing selected items.
a.list-group-item,
button.list-group-item {
color: @list-group-link-color;
.list-group-item-heading {
color: @list-group-link-heading-color;
}
// Hover state
&:hover,
&:focus {
text-decoration: none;
color: @list-group-link-hover-color;
background-color: @list-group-hover-bg;
}
}
.list-group-item:last-child {
margin-bottom: 0;
.border-bottom-radius(@border-radius-base);
button.list-group-item {
width: 100%;
text-align: left;
}
.list-group-item {
// Disabled state
&.disabled,
&.disabled:hover,
&.disabled:focus {
background-color: @list-group-disabled-bg;
color: @list-group-disabled-color;
cursor: @cursor-disabled;
// Force color to inherit for custom content
.list-group-item-heading {
color: inherit;
}
.list-group-item-text {
color: @list-group-disabled-text-color;
}
}
// Active class on item itself, not parent
&.active,
&.active:hover,
&.active:focus {
z-index: 2; // Place active items above their siblings for proper border styling
color: @list-group-active-color;
background-color: @list-group-active-bg;
border-color: @list-group-active-border;
// Force color to inherit for custom content
.list-group-item-heading,
.list-group-item-heading > small,
.list-group-item-heading > .small {
color: inherit;
}
.list-group-item-text {
color: @list-group-active-text-color;
}
}
}
// Contextual variants
//
// Add modifier classes to change text and background color on individual items.
// Organizationally, this must come after the `:hover` states.
.list-group-item-variant(success; @state-success-bg; @state-success-text);
.list-group-item-variant(info; @state-info-bg; @state-info-text);
.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
// Custom content options
// -------------------------
//
// Extra classes for creating well-formatted content within `.list-group-item`s.
.list-group-item-heading {
margin-top: 0;
@ -44,51 +128,3 @@
margin-bottom: 0;
line-height: 1.3;
}
// Linked list items
// -------------------------
// Custom content within linked items
a.list-group-item {
.list-group-item-heading {
color: #333;
}
.list-group-item-text {
color: #555;
}
}
// Hover state
a.list-group-item:hover,
a.list-group-item:focus {
text-decoration: none;
background-color: @list-group-hover-bg;
}
// Active class on item itself, not parent
a.list-group-item.active {
z-index: 2; // Place active items above their siblings for proper border styling
color: @list-group-active-color;
background-color: @list-group-active-bg;
border-color: @list-group-active-border;
// Force color to inherit for custom content
.list-group-item-heading {
color: inherit;
}
.list-group-item-text {
color: lighten(@list-group-active-bg, 40%);
}
}
// Chevrons and badges within list items
// -------------------------
.list-group-item > .badge,
.list-group-item > .glyphicon-chevron-right {
float: right;
margin-right: -15px;
}
.list-group-item > .glyphicon + .badge {
margin-right: 5px;
}

View File

@ -1,54 +1,66 @@
// Media objects
// Source: http://stubbornella.org/content/?p=497
// --------------------------------------------------
.media {
// Proper spacing between instances of .media
margin-top: 15px;
&:first-child {
margin-top: 0;
}
}
// Common styles
// -------------------------
// Clear the floats
.media,
.media-body {
overflow: hidden;
zoom: 1;
overflow: hidden;
}
// Proper spacing between instances of .media
.media,
.media .media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
.media-body {
width: 10000px;
}
// For images and videos, set to block
.media-object {
display: block;
// Fix collapse in webkit from max-width: 100% and display: table-cell.
&.img-thumbnail {
max-width: none;
}
}
.media-right,
.media > .pull-right {
padding-left: 10px;
}
.media-left,
.media > .pull-left {
padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
display: table-cell;
vertical-align: top;
}
.media-middle {
vertical-align: middle;
}
.media-bottom {
vertical-align: bottom;
}
// Reset margins on headings for tighter default spacing
.media-heading {
margin: 0 0 5px;
margin-top: 0;
margin-bottom: 5px;
}
// Media image alignment
// -------------------------
.media > .pull-left {
margin-right: 10px;
}
.media > .pull-right {
margin-left: 10px;
}
// Media list variation
// -------------------------
//
// Undo default ul/ol styles
.media-list {
margin-left: 0;
padding-left: 0;
list-style: none;
}

View File

@ -1,495 +1,40 @@
//
// Mixins
// --------------------------------------------------
// Utilities
// -------------------------
@import "mixins/hide-text.less";
@import "mixins/opacity.less";
@import "mixins/image.less";
@import "mixins/labels.less";
@import "mixins/reset-filter.less";
@import "mixins/resize.less";
@import "mixins/responsive-visibility.less";
@import "mixins/size.less";
@import "mixins/tab-focus.less";
@import "mixins/reset-text.less";
@import "mixins/text-emphasis.less";
@import "mixins/text-overflow.less";
@import "mixins/vendor-prefixes.less";
// Clearfix
// Source: http://nicolasgallagher.com/micro-clearfix-hack/
//
// For modern browsers
// 1. The space content is one way to avoid an Opera bug when the
// contenteditable attribute is included anywhere else in the document.
// Otherwise it causes space to appear at the top and bottom of elements
// that are clearfixed.
// 2. The use of `table` rather than `block` is only necessary if using
// `:before` to contain the top-margins of child elements.
.clearfix() {
&:before,
&:after {
content: " "; /* 1 */
display: table; /* 2 */
}
&:after {
clear: both;
}
}
// Components
@import "mixins/alerts.less";
@import "mixins/buttons.less";
@import "mixins/panels.less";
@import "mixins/pagination.less";
@import "mixins/list-group.less";
@import "mixins/nav-divider.less";
@import "mixins/forms.less";
@import "mixins/progress-bar.less";
@import "mixins/table-row.less";
// Webkit-style focus
.tab-focus() {
// Default
outline: thin dotted #333;
// Webkit
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
// Skins
@import "mixins/background-variant.less";
@import "mixins/border-radius.less";
@import "mixins/gradients.less";
// Center-align a block level element
.center-block() {
display: block;
margin-left: auto;
margin-right: auto;
}
// Sizing shortcuts
.size(@width, @height) {
width: @width;
height: @height;
}
.square(@size) {
.size(@size, @size);
}
// Placeholder text
.placeholder(@color: @input-color-placeholder) {
&:-moz-placeholder { color: @color; } // Firefox 4-18
&::-moz-placeholder { color: @color; } // Firefox 19+
&:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
&::-webkit-input-placeholder { color: @color; } // Safari and Chrome
}
// Text overflow
// Requires inline-block or block for proper styling
.text-overflow() {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
// CSS image replacement
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
.hide-text() {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
// CSS3 PROPERTIES
// --------------------------------------------------
// Single side border-radius
.border-top-radius(@radius) {
border-top-right-radius: @radius;
border-top-left-radius: @radius;
}
.border-right-radius(@radius) {
border-bottom-right-radius: @radius;
border-top-right-radius: @radius;
}
.border-bottom-radius(@radius) {
border-bottom-right-radius: @radius;
border-bottom-left-radius: @radius;
}
.border-left-radius(@radius) {
border-bottom-left-radius: @radius;
border-top-left-radius: @radius;
}
// Drop shadows
.box-shadow(@shadow) {
-webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
box-shadow: @shadow;
}
// Transitions
.transition(@transition) {
-webkit-transition: @transition;
-moz-transition: @transition;
-o-transition: @transition;
transition: @transition;
}
.transition-delay(@transition-delay) {
-webkit-transition-delay: @transition-delay;
-moz-transition-delay: @transition-delay;
-o-transition-delay: @transition-delay;
transition-delay: @transition-delay;
}
.transition-duration(@transition-duration) {
-webkit-transition-duration: @transition-duration;
-moz-transition-duration: @transition-duration;
-o-transition-duration: @transition-duration;
transition-duration: @transition-duration;
}
// Transformations
.rotate(@degrees) {
-webkit-transform: rotate(@degrees);
-moz-transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
-o-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.scale(@ratio) {
-webkit-transform: scale(@ratio);
-moz-transform: scale(@ratio);
-ms-transform: scale(@ratio);
-o-transform: scale(@ratio);
transform: scale(@ratio);
}
.translate(@x, @y) {
-webkit-transform: translate(@x, @y);
-moz-transform: translate(@x, @y);
-ms-transform: translate(@x, @y);
-o-transform: translate(@x, @y);
transform: translate(@x, @y);
}
.skew(@x, @y) {
-webkit-transform: skew(@x, @y);
-moz-transform: skew(@x, @y);
-ms-transform: skewX(@x) skewY(@y); // See https://github.com/twitter/bootstrap/issues/4885
-o-transform: skew(@x, @y);
transform: skew(@x, @y);
}
.translate3d(@x, @y, @z) {
-webkit-transform: translate3d(@x, @y, @z);
-moz-transform: translate3d(@x, @y, @z);
-o-transform: translate3d(@x, @y, @z);
transform: translate3d(@x, @y, @z);
}
// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden
// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
.backface-visibility(@visibility){
-webkit-backface-visibility: @visibility;
-moz-backface-visibility: @visibility;
backface-visibility: @visibility;
}
// Background clipping
.background-clip(@clip) {
-webkit-background-clip: @clip;
-moz-background-clip: @clip;
background-clip: @clip;
}
// Background sizing
.background-size(@size) {
-webkit-background-size: @size;
-moz-background-size: @size;
-o-background-size: @size;
background-size: @size;
}
// Box sizing
.box-sizing(@boxmodel) {
-webkit-box-sizing: @boxmodel;
-moz-box-sizing: @boxmodel;
box-sizing: @boxmodel;
}
// User select
// For selecting text on the page
.user-select(@select) {
-webkit-user-select: @select;
-moz-user-select: @select;
-ms-user-select: @select;
-o-user-select: @select;
user-select: @select;
}
// Resize anything
.resizable(@direction) {
resize: @direction; // Options: horizontal, vertical, both
overflow: auto; // Safari fix
}
// CSS3 Content Columns
.content-columns(@column-count, @column-gap: @grid-gutter-width) {
-webkit-column-count: @column-count;
-moz-column-count: @column-count;
column-count: @column-count;
-webkit-column-gap: @column-gap;
-moz-column-gap: @column-gap;
column-gap: @column-gap;
}
// Optional hyphenation
.hyphens(@mode: auto) {
word-wrap: break-word;
-webkit-hyphens: @mode;
-moz-hyphens: @mode;
-ms-hyphens: @mode;
-o-hyphens: @mode;
hyphens: @mode;
}
// Opacity
.opacity(@opacity) {
opacity: @opacity;
// IE8 filter
@opacity-ie: (@opacity * 100);
filter: ~"alpha(opacity=@{opacity-ie})";
}
// GRADIENTS
// --------------------------------------------------
#gradient {
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below.
.horizontal(@start-color: #555; @start-percent: 0%; @end-color: #333; @end-percent: 100%) {
background-color: @end-color;
background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+
background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
}
// Vertical gradient, from top to bottom
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below.
.vertical(@start-color: #555; @start-percent: 0%; @end-color: #333; @end-percent: 100%) {
background-color: @end-color;
background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+
background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
}
.directional(@start-color: #555, @end-color: #333, @deg: 45deg) {
background-color: @end-color;
background-repeat: repeat-x;
background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+
background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+
background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10
}
.horizontal-three-colors(@start-color: #00b3ee, @mid-color: #7a43b6, @color-stop: 50%, @end-color: #c3325f) {
background-color: mix(@mid-color, @end-color, 80%);
background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
}
.vertical-three-colors(@start-color: #00b3ee, @mid-color: #7a43b6, @color-stop: 50%, @end-color: #c3325f) {
background-color: mix(@mid-color, @end-color, 80%);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
}
.radial(@inner-color: #555, @outer-color: #333) {
background-color: @outer-color;
background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color));
background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
background-image: -moz-radial-gradient(circle, @inner-color, @outer-color);
background-image: radial-gradient(circle, @inner-color, @outer-color);
background-repeat: no-repeat;
}
.striped(@color: #555, @angle: 45deg) {
background-color: @color;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
}
}
// Reset filters for IE
//
// When you need to remove a gradient background, don't forget to use this to reset
// the IE filter for IE9 and below.
.reset-filter() {
filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
}
// RETINA IMAGE SUPPORT
// --------------------------------------------------
// Short retina mixin for setting background-image and -size
.retina-image(@file-1x, @file-2x, @width-1x, @height-1x) {
background-image: url("@{file-1x}");
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and ( min--moz-device-pixel-ratio: 2),
only screen and ( -o-min-device-pixel-ratio: 2/1),
only screen and ( min-device-pixel-ratio: 2),
only screen and ( min-resolution: 192dpi),
only screen and ( min-resolution: 2dppx) {
background-image: url("@{file-2x}");
background-size: @width-1x @height-1x;
}
}
// COMPONENT MIXINS
// --------------------------------------------------
// Horizontal dividers
// -------------------------
// Dividers (basically an hr) within dropdowns and nav lists
.nav-divider(@top: #e5e5e5, @bottom: #fff) {
height: 2px; // 1px for background, one for border
margin: ((@line-height-computed / 2) - 1) 0;
overflow: hidden;
background-color: @top;
border-bottom: 1px solid @bottom;
}
// Button psuedo states
// -------------------------
// Easily pump out default styles, as well as :hover, :focus, :active,
// and disabled options for all buttons
.btn-pseudo-states(@color, @background, @border) {
color: @color;
background-color: @background;
border-color: @border;
&:hover,
&:focus,
&:active,
&.active {
background-color: darken(@background, 5%);
border-color: darken(@border, 10%);
}
&.disabled,
&[disabled],
fieldset[disabled] & {
&:hover,
&:focus,
&:active,
&.active {
background-color: @background;
border-color: @border
}
}
}
// Navbar vertical align
// -------------------------
// Vertically center elements in the navbar.
// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
.navbar-vertical-align(@element-height) {
margin-top: ((@navbar-height - @element-height) / 2);
margin-bottom: ((@navbar-height - @element-height) / 2);
}
// Grid System
// -----------
// Centered container element
.container-fixed() {
margin-right: auto;
margin-left: auto;
.clearfix();
}
// Make a grid
// Creates a wrapper for a series of columns
.make-row() {
// Then clear the floated columns
.clearfix();
@media (min-width: @screen-small) {
margin-left: (@grid-gutter-width / -2);
margin-right: (@grid-gutter-width / -2);
}
// Negative margin nested rows out to align the content of columns
.row {
margin-left: (@grid-gutter-width / -2);
margin-right: (@grid-gutter-width / -2);
}
}
// Generate the columns
.make-column(@columns) {
position: relative;
// Float and set width: 100%; for easy stacking on mobile devices
float: left;
width: 100%;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: (@grid-gutter-width / 2);
padding-right: (@grid-gutter-width / 2);
// Calculate width based on number of columns available
@media (min-width: @grid-float-breakpoint) {
width: percentage((@columns / @grid-columns));
}
}
// Generate the column offsets
.make-column-offset(@columns) {
@media (min-width: @grid-float-breakpoint) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-column-push(@columns) {
@media (min-width: @grid-float-breakpoint) {
left: percentage((@columns / @grid-columns));
}
}
.make-column-pull(@columns) {
@media (min-width: @grid-float-breakpoint) {
right: percentage((@columns / @grid-columns));
}
}
// Framework mixins
// --------------------------------------------------
// Generate form validation states
.form-field-validation(@text-color: #555, @border-color: #ccc, @background-color: #f5f5f5) {
// Color the label text
.control-label {
color: @text-color;
}
// Set the border and box shadow on specific inputs to match
.input-with-feedback {
padding-right: 32px; // to account for the feedback icon
border-color: @border-color;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
&:focus {
border-color: darken(@border-color, 10%);
@shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
.box-shadow(@shadow);
}
}
// Set validation states also for addons
.input-group-addon {
color: @text-color;
border-color: @border-color;
background-color: @background-color;
}
}
// Layout
@import "mixins/clearfix.less";
@import "mixins/center-block.less";
@import "mixins/nav-vertical-align.less";
@import "mixins/grid-framework.less";
@import "mixins/grid.less";

View File

@ -0,0 +1,14 @@
// Alerts
.alert-variant(@background; @border; @text-color) {
background-color: @background;
border-color: @border;
color: @text-color;
hr {
border-top-color: darken(@border, 5%);
}
.alert-link {
color: darken(@text-color, 10%);
}
}

View File

@ -0,0 +1,9 @@
// Contextual backgrounds
.bg-variant(@color) {
background-color: @color;
a&:hover,
a&:focus {
background-color: darken(@color, 10%);
}
}

View File

@ -0,0 +1,18 @@
// Single side border-radius
.border-top-radius(@radius) {
border-top-right-radius: @radius;
border-top-left-radius: @radius;
}
.border-right-radius(@radius) {
border-bottom-right-radius: @radius;
border-top-right-radius: @radius;
}
.border-bottom-radius(@radius) {
border-bottom-right-radius: @radius;
border-bottom-left-radius: @radius;
}
.border-left-radius(@radius) {
border-bottom-left-radius: @radius;
border-top-left-radius: @radius;
}

View File

@ -0,0 +1,68 @@
// Button variants
//
// Easily pump out default styles, as well as :hover, :focus, :active,
// and disabled options for all buttons
.button-variant(@color; @background; @border) {
color: @color;
background-color: @background;
border-color: @border;
&:focus,
&.focus {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 25%);
}
&:hover {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
}
&:active,
&.active,
.open > .dropdown-toggle& {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
&:hover,
&:focus,
&.focus {
color: @color;
background-color: darken(@background, 17%);
border-color: darken(@border, 25%);
}
}
&:active,
&.active,
.open > .dropdown-toggle& {
background-image: none;
}
&.disabled,
&[disabled],
fieldset[disabled] & {
&,
&:hover,
&:focus,
&.focus,
&:active,
&.active {
background-color: @background;
border-color: @border;
}
}
.badge {
color: @background;
background-color: @color;
}
}
// Button sizes
.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
padding: @padding-vertical @padding-horizontal;
font-size: @font-size;
line-height: @line-height;
border-radius: @border-radius;
}

View File

@ -0,0 +1,7 @@
// Center-align a block level element
.center-block() {
display: block;
margin-left: auto;
margin-right: auto;
}

View File

@ -0,0 +1,22 @@
// Clearfix
//
// For modern browsers
// 1. The space content is one way to avoid an Opera bug when the
// contenteditable attribute is included anywhere else in the document.
// Otherwise it causes space to appear at the top and bottom of elements
// that are clearfixed.
// 2. The use of `table` rather than `block` is only necessary if using
// `:before` to contain the top-margins of child elements.
//
// Source: http://nicolasgallagher.com/micro-clearfix-hack/
.clearfix() {
&:before,
&:after {
content: " "; // 1
display: table; // 2
}
&:after {
clear: both;
}
}

View File

@ -0,0 +1,85 @@
// Form validation states
//
// Used in forms.less to generate the form validation CSS for warnings, errors,
// and successes.
.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
// Color the label and help text
.help-block,
.control-label,
.radio,
.checkbox,
.radio-inline,
.checkbox-inline,
&.radio label,
&.checkbox label,
&.radio-inline label,
&.checkbox-inline label {
color: @text-color;
}
// Set the border and box shadow on specific inputs to match
.form-control {
border-color: @border-color;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
&:focus {
border-color: darken(@border-color, 10%);
@shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
.box-shadow(@shadow);
}
}
// Set validation states also for addons
.input-group-addon {
color: @text-color;
border-color: @border-color;
background-color: @background-color;
}
// Optional feedback icon
.form-control-feedback {
color: @text-color;
}
}
// Form control focus state
//
// Generate a customized focus state and for any input with the specified color,
// which defaults to the `@input-border-focus` variable.
//
// We highly encourage you to not customize the default value, but instead use
// this to tweak colors on an as-needed basis. This aesthetic change is based on
// WebKit's default styles, but applicable to a wider range of browsers. Its
// usability and accessibility should be taken into account with any change.
//
// Example usage: change the default blue border and shadow to white for better
// contrast against a dark gray background.
.form-control-focus(@color: @input-border-focus) {
@color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
&:focus {
border-color: @color;
outline: 0;
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
}
}
// Form control sizing
//
// Relative text size, padding, and border-radii changes for form controls. For
// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
// element gets special love because it's special, and that's a fact!
.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
height: @input-height;
padding: @padding-vertical @padding-horizontal;
font-size: @font-size;
line-height: @line-height;
border-radius: @border-radius;
select& {
height: @input-height;
line-height: @input-height;
}
textarea&,
select[multiple]& {
height: auto;
}
}

View File

@ -0,0 +1,59 @@
// Gradients
#gradient {
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below.
.horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
}
// Vertical gradient, from top to bottom
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below.
.vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
}
.directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
background-repeat: repeat-x;
background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
}
.horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
}
.vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
}
.radial(@inner-color: #555; @outer-color: #333) {
background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
background-image: radial-gradient(circle, @inner-color, @outer-color);
background-repeat: no-repeat;
}
.striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
}
}

View File

@ -0,0 +1,91 @@
// Framework grid generation
//
// Used only by Bootstrap to generate the correct number of grid classes given
// any value of `@grid-columns`.
.make-grid-columns() {
// Common styles for all sizes of grid columns, widths 1-12
.col(@index) { // initial
@item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
.col((@index + 1), @item);
}
.col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
@item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
.col((@index + 1), ~"@{list}, @{item}");
}
.col(@index, @list) when (@index > @grid-columns) { // terminal
@{list} {
position: relative;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: ceil((@grid-gutter-width / 2));
padding-right: floor((@grid-gutter-width / 2));
}
}
.col(1); // kickstart it
}
.float-grid-columns(@class) {
.col(@index) { // initial
@item: ~".col-@{class}-@{index}";
.col((@index + 1), @item);
}
.col(@index, @list) when (@index =< @grid-columns) { // general
@item: ~".col-@{class}-@{index}";
.col((@index + 1), ~"@{list}, @{item}");
}
.col(@index, @list) when (@index > @grid-columns) { // terminal
@{list} {
float: left;
}
}
.col(1); // kickstart it
}
.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
.col-@{class}-@{index} {
width: percentage((@index / @grid-columns));
}
}
.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
.col-@{class}-push-@{index} {
left: percentage((@index / @grid-columns));
}
}
.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
.col-@{class}-push-0 {
left: auto;
}
}
.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
.col-@{class}-pull-@{index} {
right: percentage((@index / @grid-columns));
}
}
.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
.col-@{class}-pull-0 {
right: auto;
}
}
.calc-grid-column(@index, @class, @type) when (@type = offset) {
.col-@{class}-offset-@{index} {
margin-left: percentage((@index / @grid-columns));
}
}
// Basic looping in LESS
.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
.calc-grid-column(@index, @class, @type);
// next iteration
.loop-grid-columns((@index - 1), @class, @type);
}
// Create grid for specific class
.make-grid(@class) {
.float-grid-columns(@class);
.loop-grid-columns(@grid-columns, @class, width);
.loop-grid-columns(@grid-columns, @class, pull);
.loop-grid-columns(@grid-columns, @class, push);
.loop-grid-columns(@grid-columns, @class, offset);
}

View File

@ -0,0 +1,122 @@
// Grid system
//
// Generate semantic grid columns with these mixins.
// Centered container element
.container-fixed(@gutter: @grid-gutter-width) {
margin-right: auto;
margin-left: auto;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
&:extend(.clearfix all);
}
// Creates a wrapper for a series of columns
.make-row(@gutter: @grid-gutter-width) {
margin-left: ceil((@gutter / -2));
margin-right: floor((@gutter / -2));
&:extend(.clearfix all);
}
// Generate the extra small columns
.make-xs-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
float: left;
width: percentage((@columns / @grid-columns));
min-height: 1px;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
}
.make-xs-column-offset(@columns) {
margin-left: percentage((@columns / @grid-columns));
}
.make-xs-column-push(@columns) {
left: percentage((@columns / @grid-columns));
}
.make-xs-column-pull(@columns) {
right: percentage((@columns / @grid-columns));
}
// Generate the small columns
.make-sm-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
min-height: 1px;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
@media (min-width: @screen-sm-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
}
.make-sm-column-offset(@columns) {
@media (min-width: @screen-sm-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-sm-column-push(@columns) {
@media (min-width: @screen-sm-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-sm-column-pull(@columns) {
@media (min-width: @screen-sm-min) {
right: percentage((@columns / @grid-columns));
}
}
// Generate the medium columns
.make-md-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
min-height: 1px;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
@media (min-width: @screen-md-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
}
.make-md-column-offset(@columns) {
@media (min-width: @screen-md-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-md-column-push(@columns) {
@media (min-width: @screen-md-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-md-column-pull(@columns) {
@media (min-width: @screen-md-min) {
right: percentage((@columns / @grid-columns));
}
}
// Generate the large columns
.make-lg-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
min-height: 1px;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
@media (min-width: @screen-lg-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
}
.make-lg-column-offset(@columns) {
@media (min-width: @screen-lg-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-lg-column-push(@columns) {
@media (min-width: @screen-lg-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-lg-column-pull(@columns) {
@media (min-width: @screen-lg-min) {
right: percentage((@columns / @grid-columns));
}
}

View File

@ -0,0 +1,21 @@
// CSS image replacement
//
// Heads up! v3 launched with only `.hide-text()`, but per our pattern for
// mixins being reused as classes with the same name, this doesn't hold up. As
// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
//
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
// Deprecated as of v3.0.1 (will be removed in v4)
.hide-text() {
font: ~"0/0" a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
// New mixin to use as of v3.0.1
.text-hide() {
.hide-text();
}

View File

@ -0,0 +1,33 @@
// Image Mixins
// - Responsive image
// - Retina image
// Responsive image
//
// Keep images from scaling beyond the width of their parents.
.img-responsive(@display: block) {
display: @display;
max-width: 100%; // Part 1: Set a maximum relative to the parent
height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
}
// Retina image
//
// Short retina mixin for setting background-image and -size. Note that the
// spelling of `min--moz-device-pixel-ratio` is intentional.
.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
background-image: url("@{file-1x}");
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and ( min--moz-device-pixel-ratio: 2),
only screen and ( -o-min-device-pixel-ratio: 2/1),
only screen and ( min-device-pixel-ratio: 2),
only screen and ( min-resolution: 192dpi),
only screen and ( min-resolution: 2dppx) {
background-image: url("@{file-2x}");
background-size: @width-1x @height-1x;
}
}

View File

@ -0,0 +1,12 @@
// Labels
.label-variant(@color) {
background-color: @color;
&[href] {
&:hover,
&:focus {
background-color: darken(@color, 10%);
}
}
}

View File

@ -0,0 +1,30 @@
// List Groups
.list-group-item-variant(@state; @background; @color) {
.list-group-item-@{state} {
color: @color;
background-color: @background;
a&,
button& {
color: @color;
.list-group-item-heading {
color: inherit;
}
&:hover,
&:focus {
color: @color;
background-color: darken(@background, 5%);
}
&.active,
&.active:hover,
&.active:focus {
color: #fff;
background-color: @color;
border-color: @color;
}
}
}
}

View File

@ -0,0 +1,10 @@
// Horizontal dividers
//
// Dividers (basically an hr) within dropdowns and nav lists
.nav-divider(@color: #e5e5e5) {
height: 1px;
margin: ((@line-height-computed / 2) - 1) 0;
overflow: hidden;
background-color: @color;
}

View File

@ -0,0 +1,9 @@
// Navbar vertical align
//
// Vertically center elements in the navbar.
// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
.navbar-vertical-align(@element-height) {
margin-top: ((@navbar-height - @element-height) / 2);
margin-bottom: ((@navbar-height - @element-height) / 2);
}

View File

@ -0,0 +1,8 @@
// Opacity
.opacity(@opacity) {
opacity: @opacity;
// IE8 filter
@opacity-ie: (@opacity * 100);
filter: ~"alpha(opacity=@{opacity-ie})";
}

View File

@ -0,0 +1,24 @@
// Pagination
.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
> li {
> a,
> span {
padding: @padding-vertical @padding-horizontal;
font-size: @font-size;
line-height: @line-height;
}
&:first-child {
> a,
> span {
.border-left-radius(@border-radius);
}
}
&:last-child {
> a,
> span {
.border-right-radius(@border-radius);
}
}
}
}

View File

@ -0,0 +1,24 @@
// Panels
.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
border-color: @border;
& > .panel-heading {
color: @heading-text-color;
background-color: @heading-bg-color;
border-color: @heading-border;
+ .panel-collapse > .panel-body {
border-top-color: @border;
}
.badge {
color: @heading-bg-color;
background-color: @heading-text-color;
}
}
& > .panel-footer {
+ .panel-collapse > .panel-body {
border-bottom-color: @border;
}
}
}

View File

@ -0,0 +1,10 @@
// Progress bars
.progress-bar-variant(@color) {
background-color: @color;
// Deprecated parent class requirement as of v3.2.0
.progress-striped & {
#gradient > .striped();
}
}

View File

@ -0,0 +1,8 @@
// Reset filters for IE
//
// When you need to remove a gradient background, do not forget to use this to reset
// the IE filter for IE9 and below.
.reset-filter() {
filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
}

View File

@ -0,0 +1,18 @@
.reset-text() {
font-family: @font-family-base;
// We deliberately do NOT reset font-size.
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: @line-height-base;
text-align: left; // Fallback for where `start` is not supported
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
}

View File

@ -0,0 +1,6 @@
// Resize anything
.resizable(@direction) {
resize: @direction; // Options: horizontal, vertical, both
overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
}

View File

@ -0,0 +1,15 @@
// Responsive utilities
//
// More easily include all the states for responsive-utilities.less.
.responsive-visibility() {
display: block !important;
table& { display: table !important; }
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
}
.responsive-invisibility() {
display: none !important;
}

View File

@ -0,0 +1,10 @@
// Sizing shortcuts
.size(@width; @height) {
width: @width;
height: @height;
}
.square(@size) {
.size(@size; @size);
}

View File

@ -0,0 +1,9 @@
// WebKit-style focus
.tab-focus() {
// Default
outline: thin dotted;
// WebKit
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}

View File

@ -0,0 +1,28 @@
// Tables
.table-row-variant(@state; @background) {
// Exact selectors below required to override `.table-striped` and prevent
// inheritance to nested tables.
.table > thead > tr,
.table > tbody > tr,
.table > tfoot > tr {
> td.@{state},
> th.@{state},
&.@{state} > td,
&.@{state} > th {
background-color: @background;
}
}
// Hover states for `.table-hover`
// Note: this is not available for cells or rows within `thead` or `tfoot`.
.table-hover > tbody > tr {
> td.@{state}:hover,
> th.@{state}:hover,
&.@{state}:hover > td,
&:hover > .@{state},
&.@{state}:hover > th {
background-color: darken(@background, 5%);
}
}
}

View File

@ -0,0 +1,9 @@
// Typography
.text-emphasis-variant(@color) {
color: @color;
a&:hover,
a&:focus {
color: darken(@color, 10%);
}
}

View File

@ -0,0 +1,8 @@
// Text overflow
// Requires inline-block or block for proper styling
.text-overflow() {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View File

@ -0,0 +1,227 @@
// Vendor Prefixes
//
// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
// Autoprefixer in our Gruntfile. They will be removed in v4.
// - Animations
// - Backface visibility
// - Box shadow
// - Box sizing
// - Content columns
// - Hyphens
// - Placeholder text
// - Transformations
// - Transitions
// - User Select
// Animations
.animation(@animation) {
-webkit-animation: @animation;
-o-animation: @animation;
animation: @animation;
}
.animation-name(@name) {
-webkit-animation-name: @name;
animation-name: @name;
}
.animation-duration(@duration) {
-webkit-animation-duration: @duration;
animation-duration: @duration;
}
.animation-timing-function(@timing-function) {
-webkit-animation-timing-function: @timing-function;
animation-timing-function: @timing-function;
}
.animation-delay(@delay) {
-webkit-animation-delay: @delay;
animation-delay: @delay;
}
.animation-iteration-count(@iteration-count) {
-webkit-animation-iteration-count: @iteration-count;
animation-iteration-count: @iteration-count;
}
.animation-direction(@direction) {
-webkit-animation-direction: @direction;
animation-direction: @direction;
}
.animation-fill-mode(@fill-mode) {
-webkit-animation-fill-mode: @fill-mode;
animation-fill-mode: @fill-mode;
}
// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden`
.backface-visibility(@visibility){
-webkit-backface-visibility: @visibility;
-moz-backface-visibility: @visibility;
backface-visibility: @visibility;
}
// Drop shadows
//
// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
// supported browsers that have box shadow capabilities now support it.
.box-shadow(@shadow) {
-webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
box-shadow: @shadow;
}
// Box sizing
.box-sizing(@boxmodel) {
-webkit-box-sizing: @boxmodel;
-moz-box-sizing: @boxmodel;
box-sizing: @boxmodel;
}
// CSS3 Content Columns
.content-columns(@column-count; @column-gap: @grid-gutter-width) {
-webkit-column-count: @column-count;
-moz-column-count: @column-count;
column-count: @column-count;
-webkit-column-gap: @column-gap;
-moz-column-gap: @column-gap;
column-gap: @column-gap;
}
// Optional hyphenation
.hyphens(@mode: auto) {
word-wrap: break-word;
-webkit-hyphens: @mode;
-moz-hyphens: @mode;
-ms-hyphens: @mode; // IE10+
-o-hyphens: @mode;
hyphens: @mode;
}
// Placeholder text
.placeholder(@color: @input-color-placeholder) {
// Firefox
&::-moz-placeholder {
color: @color;
opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
}
&:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
&::-webkit-input-placeholder { color: @color; } // Safari and Chrome
}
// Transformations
.scale(@ratio) {
-webkit-transform: scale(@ratio);
-ms-transform: scale(@ratio); // IE9 only
-o-transform: scale(@ratio);
transform: scale(@ratio);
}
.scale(@ratioX; @ratioY) {
-webkit-transform: scale(@ratioX, @ratioY);
-ms-transform: scale(@ratioX, @ratioY); // IE9 only
-o-transform: scale(@ratioX, @ratioY);
transform: scale(@ratioX, @ratioY);
}
.scaleX(@ratio) {
-webkit-transform: scaleX(@ratio);
-ms-transform: scaleX(@ratio); // IE9 only
-o-transform: scaleX(@ratio);
transform: scaleX(@ratio);
}
.scaleY(@ratio) {
-webkit-transform: scaleY(@ratio);
-ms-transform: scaleY(@ratio); // IE9 only
-o-transform: scaleY(@ratio);
transform: scaleY(@ratio);
}
.skew(@x; @y) {
-webkit-transform: skewX(@x) skewY(@y);
-ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
-o-transform: skewX(@x) skewY(@y);
transform: skewX(@x) skewY(@y);
}
.translate(@x; @y) {
-webkit-transform: translate(@x, @y);
-ms-transform: translate(@x, @y); // IE9 only
-o-transform: translate(@x, @y);
transform: translate(@x, @y);
}
.translate3d(@x; @y; @z) {
-webkit-transform: translate3d(@x, @y, @z);
transform: translate3d(@x, @y, @z);
}
.rotate(@degrees) {
-webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees); // IE9 only
-o-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.rotateX(@degrees) {
-webkit-transform: rotateX(@degrees);
-ms-transform: rotateX(@degrees); // IE9 only
-o-transform: rotateX(@degrees);
transform: rotateX(@degrees);
}
.rotateY(@degrees) {
-webkit-transform: rotateY(@degrees);
-ms-transform: rotateY(@degrees); // IE9 only
-o-transform: rotateY(@degrees);
transform: rotateY(@degrees);
}
.perspective(@perspective) {
-webkit-perspective: @perspective;
-moz-perspective: @perspective;
perspective: @perspective;
}
.perspective-origin(@perspective) {
-webkit-perspective-origin: @perspective;
-moz-perspective-origin: @perspective;
perspective-origin: @perspective;
}
.transform-origin(@origin) {
-webkit-transform-origin: @origin;
-moz-transform-origin: @origin;
-ms-transform-origin: @origin; // IE9 only
transform-origin: @origin;
}
// Transitions
.transition(@transition) {
-webkit-transition: @transition;
-o-transition: @transition;
transition: @transition;
}
.transition-property(@transition-property) {
-webkit-transition-property: @transition-property;
transition-property: @transition-property;
}
.transition-delay(@transition-delay) {
-webkit-transition-delay: @transition-delay;
transition-delay: @transition-delay;
}
.transition-duration(@transition-duration) {
-webkit-transition-duration: @transition-duration;
transition-duration: @transition-duration;
}
.transition-timing-function(@timing-function) {
-webkit-transition-timing-function: @timing-function;
transition-timing-function: @timing-function;
}
.transition-transform(@transition) {
-webkit-transition: -webkit-transform @transition;
-moz-transition: -moz-transform @transition;
-o-transition: -o-transform @transition;
transition: transform @transition;
}
// User select
// For selecting text on the page
.user-select(@select) {
-webkit-user-select: @select;
-moz-user-select: @select;
-ms-user-select: @select; // IE10+
user-select: @select;
}

View File

@ -15,46 +15,49 @@
// Container that the modal scrolls within
.modal {
display: none;
overflow: auto;
overflow-y: scroll;
overflow: hidden;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: @zindex-modal-background;
z-index: @zindex-modal;
-webkit-overflow-scrolling: touch;
// Prevent Chrome on Windows from adding a focus outline. For details, see
// https://github.com/twbs/bootstrap/pull/10951.
outline: 0;
// When fading in the modal, animate it to slide down
&.fade {
top: -25%;
.transition(~"opacity 0.3s linear, top 0.3s ease-out");
&.fade .modal-dialog {
.translate(0, -25%);
.transition-transform(~"0.3s ease-out");
}
&.fade.in { top: 0; }
&.in .modal-dialog { .translate(0, 0) }
}
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto;
}
// Shell div to position the modal with bottom padding
.modal-dialog {
position: relative;
top: 0;
left: 0;
right: 0;
width: auto;
padding: 10px;
z-index: (@zindex-modal-background + 10);
margin: 10px;
}
// Actual modal
.modal-content {
position: relative;
background-color: #fff;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
background-color: @modal-content-bg;
border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
border: 1px solid @modal-content-border-color;
border-radius: @border-radius-large;
.box-shadow(0 3px 9px rgba(0,0,0,.5));
.background-clip(padding-box);
background-clip: padding-box;
// Remove focus outline from opened modal
outline: none;
outline: 0;
}
// Modal background
@ -64,18 +67,18 @@
right: 0;
bottom: 0;
left: 0;
z-index: (@zindex-modal-background - 10);
background-color: #000;
z-index: @zindex-modal-background;
background-color: @modal-backdrop-bg;
// Fade for backdrop
&.fade { .opacity(0); }
&.fade.in { .opacity(.5); }
&.in { .opacity(@modal-backdrop-opacity); }
}
// Modal header
// Top section of the modal w/ title and dismiss
.modal-header {
padding: @modal-title-padding;
border-bottom: 1px solid #e5e5e5;
border-bottom: 1px solid @modal-header-border-color;
min-height: (@modal-title-padding + @modal-title-line-height);
}
// Close icon
@ -98,11 +101,10 @@
// Footer (for actions)
.modal-footer {
margin-top: 15px;
padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;
padding: @modal-inner-padding;
text-align: right; // right align buttons
border-top: 1px solid #e5e5e5;
.clearfix(); // clear it in case folks use .pull-* classes on buttons
border-top: 1px solid @modal-footer-border-color;
&:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
// Properly space out buttons
.btn + .btn {
@ -119,19 +121,30 @@
}
}
// Scale up the modal
@media screen and (min-width: @screen-tablet) {
// Measure scrollbar width for padding body during modal show/hide
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll;
}
// Scale up the modal
@media (min-width: @screen-sm-min) {
// Automatically set modal's width for larger viewports
.modal-dialog {
left: 50%;
right: auto;
width: 560px;
margin-left: -280px;
padding-top: 30px;
padding-bottom: 30px;
width: @modal-md;
margin: 30px auto;
}
.modal-content {
.box-shadow(0 5px 15px rgba(0,0,0,.5));
}
// Modal sizes
.modal-sm { width: @modal-sm; }
}
@media (min-width: @screen-md-min) {
.modal-lg { width: @modal-lg; }
}

View File

@ -2,69 +2,136 @@
// Navbars
// --------------------------------------------------
// Wrapper and base class
//
// Provide a static navbar from which we expand to create full-width, fixed, and
// other navbar variations.
.navbar {
position: relative;
margin-bottom: 20px;
padding-left: @navbar-padding;
padding-right: @navbar-padding;
background-color: @navbar-bg;
border-radius: @border-radius-base;
min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
margin-bottom: @navbar-margin-bottom;
border: 1px solid transparent;
// Prevent floats from breaking the navbar
.clearfix();
}
&:extend(.clearfix all);
// Navbar nav links
// -------------------------
.navbar-nav {
// Space out from .navbar .brand and .btn-navbar when stacked in mobile views
// and outdent nav links so text lines up with logo.
margin-top: 10px;
margin-bottom: 15px;
> li > a {
padding-top: ((@navbar-height - @line-height-computed) / 2);
padding-bottom: ((@navbar-height - @line-height-computed) / 2);
color: @navbar-link-color;
line-height: 20px;
border-radius: @border-radius-base;
}
> li > a:hover,
> li > a:focus {
color: @navbar-link-hover-color;
background-color: @navbar-link-hover-bg;
}
> .active > a,
> .active > a:hover,
> .active > a:focus {
color: @navbar-link-active-color;
background-color: @navbar-link-active-bg;
}
> .disabled > a,
> .disabled > a:hover,
> .disabled > a:focus {
color: @navbar-link-disabled-color;
background-color: @navbar-link-disabled-bg;
}
// Right aligned contents
// Make them full width first so that they align properly on mobile
&.pull-right {
width: 100%;
@media (min-width: @grid-float-breakpoint) {
border-radius: @navbar-border-radius;
}
}
// Navbar heading
//
// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
// styling of responsive aspects.
.navbar-header {
&:extend(.clearfix all);
@media (min-width: @grid-float-breakpoint) {
float: left;
}
}
// Navbar collapse (body)
//
// Group your navbar content into this for easy collapsing and expanding across
// various device sizes. By default, this content is collapsed when <768px, but
// will expand past that for a horizontal display.
//
// To start (on mobile devices) the navbar links, forms, and buttons are stacked
// vertically and include a `max-height` to overflow in case you have too much
// content for the user's viewport.
.navbar-collapse {
overflow-x: visible;
padding-right: @navbar-padding-horizontal;
padding-left: @navbar-padding-horizontal;
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
&:extend(.clearfix all);
-webkit-overflow-scrolling: touch;
&.in {
overflow-y: auto;
}
@media (min-width: @grid-float-breakpoint) {
width: auto;
border-top: 0;
box-shadow: none;
&.collapse {
display: block !important;
height: auto !important;
padding-bottom: 0; // Override default setting
overflow: visible !important;
}
&.in {
overflow-y: visible;
}
// Undo the collapse side padding for navbars with containers to ensure
// alignment of right-aligned contents.
.navbar-fixed-top &,
.navbar-static-top &,
.navbar-fixed-bottom & {
padding-left: 0;
padding-right: 0;
}
}
}
.navbar-fixed-top,
.navbar-fixed-bottom {
.navbar-collapse {
max-height: @navbar-collapse-max-height;
@media (max-device-width: @screen-xs-min) and (orientation: landscape) {
max-height: 200px;
}
}
}
// Both navbar header and collapse
//
// When a container is present, change the behavior of the header and collapse.
.container,
.container-fluid {
> .navbar-header,
> .navbar-collapse {
margin-right: -@navbar-padding-horizontal;
margin-left: -@navbar-padding-horizontal;
@media (min-width: @grid-float-breakpoint) {
margin-right: 0;
margin-left: 0;
}
}
}
//
// Navbar alignment options
// --------------------------------------------------
//
// Display the navbar across the entirety of the page or fixed it to the top or
// bottom of the page.
// Static navbar
// Static top (unfixed, but 100% wide) navbar
.navbar-static-top {
border-radius: 0;
z-index: @zindex-navbar;
border-width: 0 0 1px;
@media (min-width: @grid-float-breakpoint) {
border-radius: 0;
}
}
// Fix the top/bottom navbars when screen real estate supports it
@ -74,55 +141,70 @@
right: 0;
left: 0;
z-index: @zindex-navbar-fixed;
border-radius: 0;
// Undo the rounded corners
@media (min-width: @grid-float-breakpoint) {
border-radius: 0;
}
}
.navbar-fixed-top {
top: 0;
border-width: 0 0 1px;
}
.navbar-fixed-bottom {
bottom: 0;
margin-bottom: 0; // override .navbar defaults
border-width: 1px 0 0;
}
//
// Navbar optional components
// --------------------------------------------------
// Brand/project name
.navbar-brand {
display: block;
max-width: 200px;
margin-left: auto;
margin-right: auto;
padding: @navbar-padding;
float: left;
padding: @navbar-padding-vertical @navbar-padding-horizontal;
font-size: @font-size-large;
font-weight: 500;
line-height: @line-height-computed;
color: @navbar-brand-color;
text-align: center;
height: @navbar-height;
&:hover,
&:focus {
color: @navbar-brand-hover-color;
text-decoration: none;
background-color: @navbar-brand-hover-bg;
}
> img {
display: block;
}
@media (min-width: @grid-float-breakpoint) {
.navbar > .container &,
.navbar > .container-fluid & {
margin-left: -@navbar-padding-horizontal;
}
}
}
// Collapsible navbar toggle
.navbar-toggle {
position: absolute;
top: 10px;
right: 10px;
padding: 8px 12px;
background-color: transparent;
border: 1px solid #ddd;
border-radius: 4px;
&:hover,
// Navbar toggle
//
// Custom button for toggling the `.navbar-collapse`, powered by the collapse
// JavaScript plugin.
.navbar-toggle {
position: relative;
float: right;
margin-right: @navbar-padding-horizontal;
padding: 9px 10px;
.navbar-vertical-align(34px);
background-color: transparent;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent;
border-radius: @border-radius-base;
// We remove the `outline` here, but later compensate by attaching `:hover`
// styles to `:focus`.
&:focus {
background-color: #ddd;
outline: 0;
}
// Bars
@ -130,76 +212,323 @@
display: block;
width: 22px;
height: 2px;
background-color: #ccc;
border-radius: 1px;
}
.icon-bar + .icon-bar {
margin-top: 4px;
}
@media (min-width: @grid-float-breakpoint) {
display: none;
}
}
// Navbar form
.navbar-form {
.form-inline();
.navbar-vertical-align(@input-height-base); // Vertically center in navbar
// Navbar nav links
//
// Builds on top of the `.nav` components with its own modifier class to make
// the nav the full height of the horizontal nav (above 768px).
.navbar-nav {
margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
> li > a {
padding-top: 10px;
padding-bottom: 10px;
line-height: @line-height-computed;
}
@media (max-width: @grid-float-breakpoint-max) {
// Dropdowns get custom display when collapsed
.open .dropdown-menu {
position: static;
float: none;
width: auto;
margin-top: 0;
background-color: transparent;
border: 0;
box-shadow: none;
> li > a,
.dropdown-header {
padding: 5px 15px 5px 25px;
}
> li > a {
line-height: @line-height-computed;
&:hover,
&:focus {
background-image: none;
}
}
}
}
// Uncollapse the nav
@media (min-width: @grid-float-breakpoint) {
float: left;
margin: 0;
> li {
float: left;
> a {
padding-top: @navbar-padding-vertical;
padding-bottom: @navbar-padding-vertical;
}
}
}
}
// Navbar form
//
// Extension of the `.form-inline` with some extra flavor for optimum display in
// our navbars.
.navbar-form {
margin-left: -@navbar-padding-horizontal;
margin-right: -@navbar-padding-horizontal;
padding: 10px @navbar-padding-horizontal;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
@shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
.box-shadow(@shadow);
// Mixin behavior for optimum display
.form-inline();
.form-group {
@media (max-width: @grid-float-breakpoint-max) {
margin-bottom: 5px;
&:last-child {
margin-bottom: 0;
}
}
}
// Vertically center in expanded, horizontal navbar
.navbar-vertical-align(@input-height-base);
// Undo 100% width for pull classes
@media (min-width: @grid-float-breakpoint) {
width: auto;
border: 0;
margin-left: 0;
margin-right: 0;
padding-top: 0;
padding-bottom: 0;
.box-shadow(none);
}
}
// Dropdown menus
// Menu position and menu carets
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
border-top-left-radius: 0;
border-top-right-radius: 0;
.border-top-radius(0);
}
// Menu position and menu caret support for dropups via extra dropup class
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
// Dropdown menu items and carets
.navbar-nav {
// Caret should match text color on hover
> .dropdown > a:hover .caret,
> .dropdown > a:focus .caret {
border-top-color: @navbar-link-hover-color;
border-bottom-color: @navbar-link-hover-color;
}
// Remove background color from open dropdown
> .open > a,
> .open > a:hover,
> .open > a:focus {
background-color: @navbar-link-active-bg;
color: @navbar-link-active-color;
}
> .dropdown > a .caret {
border-top-color: @navbar-link-color;
border-bottom-color: @navbar-link-color;
}
> .open > a .caret,
> .open > a:hover .caret,
> .open > a:focus .caret {
border-top-color: @navbar-link-active-color;
border-bottom-color: @navbar-link-active-color;
}
}
// Right aligned menus need alt position
.navbar-nav.pull-right > li > .dropdown-menu,
.navbar-nav > li > .dropdown-menu.pull-right {
left: auto;
right: 0;
margin-bottom: 0;
.border-top-radius(@navbar-border-radius);
.border-bottom-radius(0);
}
// Buttons in navbars
//
// Vertically center a button within a navbar (when *not* in a form).
.navbar-btn {
.navbar-vertical-align(@input-height-base);
&.btn-sm {
.navbar-vertical-align(@input-height-small);
}
&.btn-xs {
.navbar-vertical-align(22);
}
}
// Text in navbars
//
// Add a class to make any element properly align itself vertically within the navbars.
.navbar-text {
.navbar-vertical-align(@line-height-computed);
@media (min-width: @grid-float-breakpoint) {
float: left;
margin-left: @navbar-padding-horizontal;
margin-right: @navbar-padding-horizontal;
}
}
// Component alignment
//
// Repurpose the pull utilities as their own navbar utilities to avoid specificity
// issues with parents and chaining. Only do this when the navbar is uncollapsed
// though so that navbar contents properly stack and align in mobile.
//
// Declared after the navbar components to ensure more specificity on the margins.
@media (min-width: @grid-float-breakpoint) {
.navbar-left { .pull-left(); }
.navbar-right {
.pull-right();
margin-right: -@navbar-padding-horizontal;
~ .navbar-right {
margin-right: 0;
}
}
}
// Alternate navbars
// --------------------------------------------------
// Default navbar
.navbar-default {
background-color: @navbar-default-bg;
border-color: @navbar-default-border;
.navbar-brand {
color: @navbar-default-brand-color;
&:hover,
&:focus {
color: @navbar-default-brand-hover-color;
background-color: @navbar-default-brand-hover-bg;
}
}
.navbar-text {
color: @navbar-default-color;
}
.navbar-nav {
> li > a {
color: @navbar-default-link-color;
&:hover,
&:focus {
color: @navbar-default-link-hover-color;
background-color: @navbar-default-link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
color: @navbar-default-link-active-color;
background-color: @navbar-default-link-active-bg;
}
}
> .disabled > a {
&,
&:hover,
&:focus {
color: @navbar-default-link-disabled-color;
background-color: @navbar-default-link-disabled-bg;
}
}
}
.navbar-toggle {
border-color: @navbar-default-toggle-border-color;
&:hover,
&:focus {
background-color: @navbar-default-toggle-hover-bg;
}
.icon-bar {
background-color: @navbar-default-toggle-icon-bar-bg;
}
}
.navbar-collapse,
.navbar-form {
border-color: @navbar-default-border;
}
// Dropdown menu items
.navbar-nav {
// Remove background color from open dropdown
> .open > a {
&,
&:hover,
&:focus {
background-color: @navbar-default-link-active-bg;
color: @navbar-default-link-active-color;
}
}
@media (max-width: @grid-float-breakpoint-max) {
// Dropdowns get custom display when collapsed
.open .dropdown-menu {
> li > a {
color: @navbar-default-link-color;
&:hover,
&:focus {
color: @navbar-default-link-hover-color;
background-color: @navbar-default-link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
color: @navbar-default-link-active-color;
background-color: @navbar-default-link-active-bg;
}
}
> .disabled > a {
&,
&:hover,
&:focus {
color: @navbar-default-link-disabled-color;
background-color: @navbar-default-link-disabled-bg;
}
}
}
}
}
// Links in navbars
//
// Add a class to ensure links outside the navbar nav are colored correctly.
.navbar-link {
color: @navbar-default-link-color;
&:hover {
color: @navbar-default-link-hover-color;
}
}
.btn-link {
color: @navbar-default-link-color;
&:hover,
&:focus {
color: @navbar-default-link-hover-color;
}
&[disabled],
fieldset[disabled] & {
&:hover,
&:focus {
color: @navbar-default-link-disabled-color;
}
}
}
}
// Inverse navbar
// --------------------------------------------------
.navbar-inverse {
background-color: @navbar-inverse-bg;
border-color: @navbar-inverse-border;
.navbar-brand {
color: @navbar-inverse-brand-color;
@ -217,147 +546,115 @@
.navbar-nav {
> li > a {
color: @navbar-inverse-link-color;
&:hover,
&:focus {
color: @navbar-inverse-link-hover-color;
background-color: @navbar-inverse-link-hover-bg;
}
}
> li > a:hover,
> li > a:focus {
color: @navbar-inverse-link-hover-color;
background-color: @navbar-inverse-link-hover-bg;
> .active > a {
&,
&:hover,
&:focus {
color: @navbar-inverse-link-active-color;
background-color: @navbar-inverse-link-active-bg;
}
}
> .active > a,
> .active > a:hover,
> .active > a:focus {
color: @navbar-inverse-link-active-color;
background-color: @navbar-inverse-link-active-bg;
}
> .disabled > a,
> .disabled > a:hover,
> .disabled > a:focus {
color: @navbar-inverse-link-disabled-color;
background-color: @navbar-inverse-link-disabled-bg;
> .disabled > a {
&,
&:hover,
&:focus {
color: @navbar-inverse-link-disabled-color;
background-color: @navbar-inverse-link-disabled-bg;
}
}
}
// Darken the responsive nav toggle
.navbar-toggle {
border-color: #333;
border-color: @navbar-inverse-toggle-border-color;
&:hover,
&:focus {
background-color: #333;
background-color: @navbar-inverse-toggle-hover-bg;
}
.icon-bar {
background-color: #fff;
background-color: @navbar-inverse-toggle-icon-bar-bg;
}
}
.navbar-collapse,
.navbar-form {
border-color: darken(@navbar-inverse-bg, 7%);
}
// Dropdowns
.navbar-nav {
> .open > a,
> .open > a:hover,
> .open > a:focus {
background-color: @navbar-inverse-link-active-bg;
color: @navbar-inverse-link-active-color;
}
> .dropdown > a:hover .caret {
border-top-color: @navbar-inverse-link-hover-color;
border-bottom-color: @navbar-inverse-link-hover-color;
}
> .dropdown > a .caret {
border-top-color: @navbar-inverse-link-color;
border-bottom-color: @navbar-inverse-link-color;
}
> .open > a .caret,
> .open > a:hover .caret,
> .open > a:focus .caret {
border-top-color: @navbar-inverse-link-active-color;
border-bottom-color: @navbar-inverse-link-active-color;
}
}
}
// Responsive navbar
// --------------------------------------------------
@media screen and (min-width: @grid-float-breakpoint) {
.navbar-brand {
float: left;
margin-left: -(@navbar-padding);
margin-right: 5px;
}
.navbar-nav {
float: left;
// undo margin to make nav extend full height of navbar
margin-top: 0;
margin-bottom: 0;
> li {
float: left;
> a {
border-radius: 0;
> .open > a {
&,
&:hover,
&:focus {
background-color: @navbar-inverse-link-active-bg;
color: @navbar-inverse-link-active-color;
}
}
&.pull-right {
float: right;
width: auto;
@media (max-width: @grid-float-breakpoint-max) {
// Dropdowns get custom display
.open .dropdown-menu {
> .dropdown-header {
border-color: @navbar-inverse-border;
}
.divider {
background-color: @navbar-inverse-border;
}
> li > a {
color: @navbar-inverse-link-color;
&:hover,
&:focus {
color: @navbar-inverse-link-hover-color;
background-color: @navbar-inverse-link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
color: @navbar-inverse-link-active-color;
background-color: @navbar-inverse-link-active-bg;
}
}
> .disabled > a {
&,
&:hover,
&:focus {
color: @navbar-inverse-link-disabled-color;
background-color: @navbar-inverse-link-disabled-bg;
}
}
}
}
}
// Required to make the collapsing navbar work on regular desktops
.navbar-toggle {
position: relative;
top: auto;
left: auto;
display: none;
}
.nav-collapse.collapse {
height: auto !important;
overflow: visible !important;
.navbar-link {
color: @navbar-inverse-link-color;
&:hover {
color: @navbar-inverse-link-hover-color;
}
}
}
// Buttons in navbars
//
// Vertically center a button within a navbar (when *not* in a form).
.navbar-btn {
margin-top: ((@navbar-height - @input-height-base) / 2);
}
// Text in navbars
//
// Add a class to make any element properly align itself vertically within the navbars.
.navbar-text {
.navbar-vertical-align(@line-height-computed);
}
// Links in navbars
//
// Add a class to ensure links outside the navbar nav are colored correctly.
// Default navbar variables
.navbar-link {
color: @navbar-link-color;
&:hover {
color: @navbar-link-hover-color;
}
}
// Use the inverse navbar variables
.navbar-inverse .navbar-link {
color: @navbar-inverse-link-color;
&:hover {
color: @navbar-inverse-link-hover-color;
.btn-link {
color: @navbar-inverse-link-color;
&:hover,
&:focus {
color: @navbar-inverse-link-hover-color;
}
&[disabled],
fieldset[disabled] & {
&:hover,
&:focus {
color: @navbar-inverse-link-disabled-color;
}
}
}
}

View File

@ -7,11 +7,10 @@
// --------------------------------------------------
.nav {
margin-left: 0;
margin-bottom: 0;
padding-left: 0; // Override default ul/ol
list-style: none;
.clearfix();
&:extend(.clearfix all);
> li {
position: relative;
@ -20,68 +19,62 @@
> a {
position: relative;
display: block;
padding: 10px 15px;
padding: @nav-link-padding;
&:hover,
&:focus {
text-decoration: none;
background-color: @gray-lighter;
background-color: @nav-link-hover-bg;
}
}
// Disabled state sets text to gray and nukes hover/tab effects
&.disabled > a {
color: @gray-light;
}
&.disabled > a:hover,
&.disabled > a:focus {
color: @gray-light;
text-decoration: none;
background-color: transparent;
cursor: default;
}
color: @nav-disabled-link-color;
// Space the headers out when they follow another list item (link)
+ .nav-header {
margin-top: 9px;
&:hover,
&:focus {
color: @nav-disabled-link-hover-color;
text-decoration: none;
background-color: transparent;
cursor: @cursor-disabled;
}
}
}
// Open dropdowns
&.open > a,
&.open > a:hover,
&.open > a:focus {
color: #fff;
background-color: @link-color;
border-color: @link-color;
.caret {
border-top-color: #fff;
border-bottom-color: #fff;
.open > a {
&,
&:hover,
&:focus {
background-color: @nav-link-hover-bg;
border-color: @link-color;
}
}
// Redeclare pull classes because of specifity
// Todo: consider making these utilities !important to avoid this bullshit
> .pull-right {
float: right;
}
// Dividers (basically an hr) within the dropdown
// Nav dividers (deprecated with v3.0.1)
//
// This should have been removed in v3 with the dropping of `.nav-list`, but
// we missed it. We don't currently support this anywhere, but in the interest
// of maintaining backward compatibility in case you use it, it's deprecated.
.nav-divider {
.nav-divider();
}
// Prevent IE8 from misplacing imgs
//
// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
> li > a > img {
max-width: none;
}
}
// Nav variations
// --------------------------------------------------
// Tabs
// -------------------------
// Give the tabs something to sit on
.nav-tabs {
border-bottom: 1px solid #ddd;
border-bottom: 1px solid @nav-tabs-border-color;
> li {
float: left;
// Make the list-items overlay the bottom border
@ -94,25 +87,27 @@
border: 1px solid transparent;
border-radius: @border-radius-base @border-radius-base 0 0;
&:hover {
border-color: @gray-lighter @gray-lighter #ddd;
border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;
}
}
// Active state, and it's :hover to override normal :hover
&.active > a,
&.active > a:hover,
&.active > a:focus {
color: @gray;
background-color: @body-bg;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
// Active state, and its :hover to override normal :hover
&.active > a {
&,
&:hover,
&:focus {
color: @nav-tabs-active-link-hover-color;
background-color: @nav-tabs-active-link-hover-bg;
border: 1px solid @nav-tabs-active-link-hover-border-color;
border-bottom-color: transparent;
cursor: default;
}
}
}
// pulling this in mainly for less shorthand
&.nav-justified {
.nav-justified;
.nav-tabs-justified;
.nav-justified();
.nav-tabs-justified();
}
}
@ -125,20 +120,20 @@
// Links rendered as pills
> a {
border-radius: 5px;
border-radius: @nav-pills-border-radius;
}
+ li {
> a {
margin-left: 2px;
}
margin-left: 2px;
}
// Active state
&.active > a,
&.active > a:hover,
&.active > a:focus {
color: #fff;
background-color: @component-active-bg;
&.active > a {
&,
&:hover,
&:focus {
color: @nav-pills-active-link-hover-color;
background-color: @nav-pills-active-link-hover-bg;
}
}
}
}
@ -149,95 +144,95 @@
> li {
float: none;
+ li {
> a {
margin-top: 2px;
margin-left: 0; // no need for this gap between nav items
}
margin-top: 2px;
margin-left: 0; // no need for this gap between nav items
}
}
}
// Nav variations
// --------------------------------------------------
// Justified nav links
// -------------------------
.nav-justified {
width: 100%;
> li {
float: none;
display: table-cell;
width: 1%;
> a {
text-align: center;
margin-bottom: 5px;
}
}
> .dropdown .dropdown-menu {
top: auto;
left: auto;
}
@media (min-width: @screen-sm-min) {
> li {
display: table-cell;
width: 1%;
> a {
margin-bottom: 0;
}
}
}
}
// Move borders to anchors instead of bottom of list
.nav-tabs-justified () {
//
// Mixin for adding on top the shared `.nav-justified` styles for our tabs
.nav-tabs-justified {
border-bottom: 0;
> li > a {
border-bottom: 1px solid #ddd;
> li > a {
// Override margin from .nav-tabs
margin-right: 0;
}
> .active > a {
border-bottom-color: @body-bg;
border-radius: @border-radius-base;
}
> .active > a,
> .active > a:hover,
> .active > a:focus {
border: 1px solid @nav-tabs-justified-link-border-color;
}
@media (min-width: @screen-sm-min) {
> li > a {
border-bottom: 1px solid @nav-tabs-justified-link-border-color;
border-radius: @border-radius-base @border-radius-base 0 0;
}
> .active > a,
> .active > a:hover,
> .active > a:focus {
border-bottom-color: @nav-tabs-justified-active-link-border-color;
}
}
}
// Nav headers (for dropdowns and lists)
// -------------------------
.nav-header {
display: block;
padding: 3px 15px;
font-size: @font-size-mini;
font-weight: bold;
line-height: @line-height-base;
color: @gray-light;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
text-transform: uppercase;
}
// Tabbable tabs
// -------------------------
// Clear any floats
.tabbable {
.clearfix();
// Hide tabbable panes to start, show them when `.active`
.tab-content {
> .tab-pane {
display: none;
}
> .active {
display: block;
}
}
// Show/hide tabbable areas
.tab-content > .tab-pane,
.pill-content > .pill-pane {
display: none;
}
.tab-content > .active,
.pill-content > .active {
display: block;
}
// Dropdowns
// -------------------------
// Make dropdown carets use link color in navs
.nav .caret {
border-top-color: @link-color;
border-bottom-color: @link-color;
}
.nav a:hover .caret {
border-top-color: @link-hover-color;
border-bottom-color: @link-hover-color;
}
// Specific dropdowns
.nav-tabs .dropdown-menu {
// make dropdown border overlap tab border

View File

@ -1,11 +1,33 @@
/*! normalize.css v2.1.0 | MIT License | git.io/normalize */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
//
// 1. Set default font family to sans-serif.
// 2. Prevent iOS and IE text size adjust after device orientation change,
// without disabling user zoom.
//
html {
font-family: sans-serif; // 1
-ms-text-size-adjust: 100%; // 2
-webkit-text-size-adjust: 100%; // 2
}
//
// Remove default margin.
//
body {
margin: 0;
}
// ==========================================================================
// HTML5 display definitions
// ==========================================================================
//
// Correct `block` display not defined in IE 8/9.
// Correct `block` display not defined for any HTML5 element in IE 8/9.
// Correct `block` display not defined for `details` or `summary` in IE 10/11
// and Firefox.
// Correct `block` display not defined for `main` in IE 11.
//
article,
@ -17,6 +39,7 @@ footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
@ -24,13 +47,16 @@ summary {
}
//
// Correct `inline-block` display not defined in IE 8/9.
// 1. Correct `inline-block` display not defined in IE 8/9.
// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
//
audio,
canvas,
progress,
video {
display: inline-block;
display: inline-block; // 1
vertical-align: baseline; // 2
}
//
@ -44,51 +70,29 @@ audio:not([controls]) {
}
//
// Address styling not present in IE 8/9.
// Address `[hidden]` styling not present in IE 8/9/10.
// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
//
[hidden] {
[hidden],
template {
display: none;
}
// ==========================================================================
// Base
// ==========================================================================
//
// 1. Set default font family to sans-serif.
// 2. Prevent iOS text size adjust after orientation change, without disabling
// user zoom.
//
html {
font-family: sans-serif; // 1
-webkit-text-size-adjust: 100%; // 2
-ms-text-size-adjust: 100%; // 2
}
//
// Remove default margin.
//
body {
margin: 0;
}
// ==========================================================================
// Links
// ==========================================================================
//
// Address `outline` inconsistency between Chrome and other browsers.
// Remove the gray background color from active links in IE 10.
//
a:focus {
outline: thin dotted;
a {
background-color: transparent;
}
//
// Improve readability when focused and also mouse hovered in all browsers.
// Improve readability of focused elements when they are also in an
// active/hover state.
//
a:active,
@ -96,22 +100,11 @@ a:hover {
outline: 0;
}
// ==========================================================================
// Typography
// Text-level semantics
// ==========================================================================
//
// Address variable `h1` font-size and margin within `section` and `article`
// contexts in Firefox 4+, Safari 5, and Chrome.
//
h1 {
font-size: 2em;
margin: 0.67em 0;
}
//
// Address styling not present in IE 8/9, Safari 5, and Chrome.
// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
//
abbr[title] {
@ -119,7 +112,7 @@ abbr[title] {
}
//
// Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
//
b,
@ -128,7 +121,7 @@ strong {
}
//
// Address styling not present in Safari 5 and Chrome.
// Address styling not present in Safari and Chrome.
//
dfn {
@ -136,13 +129,13 @@ dfn {
}
//
// Address differences between Firefox and other browsers.
// Address variable `h1` font-size and margin within `section` and `article`
// contexts in Firefox 4+, Safari, and Chrome.
//
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
h1 {
font-size: 2em;
margin: 0.67em 0;
}
//
@ -154,34 +147,6 @@ mark {
color: #000;
}
//
// Correct font family set oddly in Safari 5 and Chrome.
//
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em;
}
//
// Improve readability of pre-formatted text in all browsers.
//
pre {
white-space: pre-wrap;
}
//
// Set consistent quote types.
//
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
//
// Address inconsistent and variable font size in all browsers.
//
@ -210,12 +175,11 @@ sub {
bottom: -0.25em;
}
// ==========================================================================
// Embedded content
// ==========================================================================
//
// Remove border when inside `a` element in IE 8/9.
// Remove border when inside `a` element in IE 8/9/10.
//
img {
@ -223,79 +187,91 @@ img {
}
//
// Correct overflow displayed oddly in IE 9.
// Correct overflow not hidden in IE 9/10/11.
//
svg:not(:root) {
overflow: hidden;
}
// ==========================================================================
// Figures
// Grouping content
// ==========================================================================
//
// Address margin not present in IE 8/9 and Safari 5.
// Address margin not present in IE 8/9 and Safari.
//
figure {
margin: 0;
margin: 1em 40px;
}
//
// Address differences between Firefox and other browsers.
//
hr {
box-sizing: content-box;
height: 0;
}
//
// Contain overflow in all browsers.
//
pre {
overflow: auto;
}
//
// Address odd `em`-unit font size rendering in all browsers.
//
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
// ==========================================================================
// Forms
// ==========================================================================
//
// Define consistent border, margin, and padding.
// Known limitation: by default, Chrome and Safari on OS X allow very limited
// styling of `select`, unless a `border` property is set.
//
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
//
// 1. Correct `color` not being inherited in IE 8/9.
// 2. Remove padding so people aren't caught out if they zero out fieldsets.
//
legend {
border: 0; // 1
padding: 0; // 2
}
//
// 1. Correct font family not being inherited in all browsers.
// 2. Correct font size not being inherited in all browsers.
// 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
// 1. Correct color not being inherited.
// Known issue: affects color of disabled elements.
// 2. Correct font properties not being inherited.
// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
//
button,
input,
optgroup,
select,
textarea {
font-family: inherit; // 1
font-size: 100%; // 2
color: inherit; // 1
font: inherit; // 2
margin: 0; // 3
}
//
// Address Firefox 4+ setting `line-height` on `input` using `!important` in
// the UA stylesheet.
// Address `overflow` set to `hidden` in IE 8/9/10/11.
//
button,
input {
line-height: normal;
button {
overflow: visible;
}
//
// Address inconsistent `text-transform` inheritance for `button` and `select`.
// All other form control elements do not inherit `text-transform` values.
// Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
// Correct `select` style inheritance in Firefox 4+ and Opera.
// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
// Correct `select` style inheritance in Firefox.
//
button,
@ -328,40 +304,6 @@ html input[disabled] {
cursor: default;
}
//
// 1. Address box sizing set to `content-box` in IE 8/9.
// 2. Remove excess padding in IE 8/9.
//
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; // 1
padding: 0; // 2
}
//
// 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
// 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
// (include `-moz` to future-proof).
//
input[type="search"] {
-webkit-appearance: textfield; // 1
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; // 2
box-sizing: content-box;
}
//
// Remove inner padding and search cancel button in Safari 5 and Chrome
// on OS X.
//
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
//
// Remove inner padding and border in Firefox 4+.
//
@ -373,16 +315,97 @@ input::-moz-focus-inner {
}
//
// 1. Remove default vertical scrollbar in IE 8/9.
// 2. Improve readability and alignment in all browsers.
// Address Firefox 4+ setting `line-height` on `input` using `!important` in
// the UA stylesheet.
//
input {
line-height: normal;
}
//
// It's recommended that you don't attempt to style these elements.
// Firefox's implementation doesn't respect box-sizing, padding, or width.
//
// 1. Address box sizing set to `content-box` in IE 8/9/10.
// 2. Remove excess padding in IE 8/9/10.
//
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; // 1
padding: 0; // 2
}
//
// Fix the cursor style for Chrome's increment/decrement buttons. For certain
// `font-size` values of the `input`, it causes the cursor style of the
// decrement button to change from `default` to `text`.
//
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
//
// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
//
input[type="search"] {
-webkit-appearance: textfield; // 1
box-sizing: content-box; //2
}
//
// Remove inner padding and search cancel button in Safari and Chrome on OS X.
// Safari (but not Chrome) clips the cancel button when the search input has
// padding (and `textfield` appearance).
//
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
//
// Define consistent border, margin, and padding.
//
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
//
// 1. Correct `color` not being inherited in IE 8/9/10/11.
// 2. Remove padding so people aren't caught out if they zero out fieldsets.
//
legend {
border: 0; // 1
padding: 0; // 2
}
//
// Remove default vertical scrollbar in IE 8/9/10/11.
//
textarea {
overflow: auto; // 1
vertical-align: top; // 2
overflow: auto;
}
//
// Don't inherit the `font-weight` (applied by a rule above).
// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
//
optgroup {
font-weight: bold;
}
// ==========================================================================
// Tables
// ==========================================================================
@ -394,3 +417,8 @@ table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}

View File

@ -4,25 +4,26 @@
.pager {
padding-left: 0;
margin: @line-height-computed 0;
list-style: none;
text-align: center;
.clearfix();
&:extend(.clearfix all);
li {
display: inline;
> a,
> span {
display: inline-block;
padding: 5px 14px;
background-color: @pagination-bg;
border: 1px solid @pagination-border;
border-radius: 15px;
background-color: @pager-bg;
border: 1px solid @pager-border;
border-radius: @pager-border-radius;
}
> a:hover,
> a:focus {
text-decoration: none;
background-color: @pagination-active-bg;
background-color: @pager-hover-bg;
}
}
@ -45,10 +46,9 @@
> a:hover,
> a:focus,
> span {
color: @gray-light;
background-color: @pagination-bg;
cursor: default;
color: @pager-disabled-color;
background-color: @pager-bg;
cursor: @cursor-disabled;
}
}
}

View File

@ -3,85 +3,87 @@
// --------------------------------------------------
.pagination {
display: inline-block;
padding-left: 0;
margin: @line-height-computed 0;
border-radius: @border-radius-base;
}
.pagination > li {
display: inline; // Remove list-style and block-level defaults
}
.pagination > li > a,
.pagination > li > span {
float: left; // Collapse white-space
padding: 4px 12px;
line-height: @line-height-base;
text-decoration: none;
background-color: @pagination-bg;
border: 1px solid @pagination-border;
border-left-width: 0;
}
.pagination > li > a:hover,
.pagination > li > a:focus,
.pagination > .active > a,
.pagination > .active > span {
background-color: @pagination-active-bg;
}
.pagination > .active > a,
.pagination > .active > span {
color: @gray-light;
cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
color: @gray-light;
background-color: @pagination-bg;
cursor: default;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
border-left-width: 1px;
.border-left-radius(@border-radius-base);
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
.border-right-radius(@border-radius-base);
}
> li {
display: inline; // Remove list-style and block-level defaults
> a,
> span {
position: relative;
float: left; // Collapse white-space
padding: @padding-base-vertical @padding-base-horizontal;
line-height: @line-height-base;
text-decoration: none;
color: @pagination-color;
background-color: @pagination-bg;
border: 1px solid @pagination-border;
margin-left: -1px;
}
&:first-child {
> a,
> span {
margin-left: 0;
.border-left-radius(@border-radius-base);
}
}
&:last-child {
> a,
> span {
.border-right-radius(@border-radius-base);
}
}
}
> li > a,
> li > span {
&:hover,
&:focus {
z-index: 2;
color: @pagination-hover-color;
background-color: @pagination-hover-bg;
border-color: @pagination-hover-border;
}
}
> .active > a,
> .active > span {
&,
&:hover,
&:focus {
z-index: 3;
color: @pagination-active-color;
background-color: @pagination-active-bg;
border-color: @pagination-active-border;
cursor: default;
}
}
> .disabled {
> span,
> span:hover,
> span:focus,
> a,
> a:hover,
> a:focus {
color: @pagination-disabled-color;
background-color: @pagination-disabled-bg;
border-color: @pagination-disabled-border;
cursor: @cursor-disabled;
}
}
}
// Sizing
// --------------------------------------------------
// Large
.pagination-large {
> li > a,
> li > span {
padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large;
}
> li:first-child > a,
> li:first-child > span {
.border-left-radius(@border-radius-large);
}
> li:last-child > a,
> li:last-child > span {
.border-right-radius(@border-radius-large);
}
.pagination-lg {
.pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
}
// Small
.pagination-small {
> li > a,
> li > span {
padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small;
}
> li:first-child > a,
> li:first-child > span {
.border-left-radius(@border-radius-small);
}
> li:last-child > a,
> li:last-child > span {
.border-right-radius(@border-radius-small);
}
.pagination-sm {
.pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
}

View File

@ -5,92 +5,267 @@
// Base class
.panel {
padding: 15px;
margin-bottom: 20px;
margin-bottom: @line-height-computed;
background-color: @panel-bg;
border: 1px solid @panel-border;
border: 1px solid transparent;
border-radius: @panel-border-radius;
.box-shadow(0 1px 1px rgba(0,0,0,.05));
}
// Panel contents
.panel-body {
padding: @panel-body-padding;
&:extend(.clearfix all);
}
// Optional heading
.panel-heading {
margin: -15px -15px 15px;
padding: 10px 15px;
font-size: (@font-size-base * 1.25);
font-weight: 500;
background-color: @panel-heading-bg;
border-bottom: 1px solid @panel-border;
border-top-left-radius: (@panel-border-radius - 1);
border-top-right-radius: (@panel-border-radius - 1);
padding: @panel-heading-padding;
border-bottom: 1px solid transparent;
.border-top-radius((@panel-border-radius - 1));
> .dropdown .dropdown-toggle {
color: inherit;
}
}
// Within heading, strip any `h*` tag of its default margins for spacing.
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: ceil((@font-size-base * 1.125));
color: inherit;
> a,
> small,
> .small,
> small > a,
> .small > a {
color: inherit;
}
}
// Optional footer (stays gray in every modifier class)
.panel-footer {
margin: 15px -15px -15px;
padding: 10px 15px;
padding: @panel-footer-padding;
background-color: @panel-footer-bg;
border-top: 1px solid @panel-border;
border-bottom-left-radius: (@panel-border-radius - 1);
border-bottom-right-radius: (@panel-border-radius - 1);
border-top: 1px solid @panel-inner-border;
.border-bottom-radius((@panel-border-radius - 1));
}
// Contextual variations
.panel-primary {
border-color: @panel-primary-border;
.panel-heading {
color: @panel-primary-text;
background-color: @panel-primary-heading-bg;
border-color: @panel-primary-border;
}
}
.panel-success {
border-color: @panel-success-border;
.panel-heading {
color: @panel-success-text;
background-color: @panel-success-heading-bg;
border-color: @panel-success-border;
}
}
.panel-warning {
border-color: @panel-warning-border;
.panel-heading {
color: @panel-warning-text;
background-color: @panel-warning-heading-bg;
border-color: @panel-warning-border;
}
}
.panel-danger {
border-color: @panel-danger-border;
.panel-heading {
color: @panel-danger-text;
background-color: @panel-danger-heading-bg;
border-color: @panel-danger-border;
}
}
.panel-info {
border-color: @panel-info-border;
.panel-heading {
color: @panel-info-text;
background-color: @panel-info-heading-bg;
border-color: @panel-info-border;
}
}
// List groups in panels
.list-group-flush {
margin: 15px -15px -15px;
//
// By default, space out list group content from panel headings to account for
// any kind of custom content between the two.
.list-group-item {
border-width: 1px 0;
.panel {
> .list-group,
> .panel-collapse > .list-group {
margin-bottom: 0;
// Remove border radius for top one
&:first-child {
.border-top-radius(0);
.list-group-item {
border-width: 1px 0;
border-radius: 0;
}
// But keep it for the last one
// Add border top radius for first one
&:first-child {
.list-group-item:first-child {
border-top: 0;
.border-top-radius((@panel-border-radius - 1));
}
}
// Add border bottom radius for last one
&:last-child {
border-bottom: 0;
.list-group-item:last-child {
border-bottom: 0;
.border-bottom-radius((@panel-border-radius - 1));
}
}
}
> .panel-heading + .panel-collapse > .list-group {
.list-group-item:first-child {
.border-top-radius(0);
}
}
}
// Collapse space between when there's no additional content.
.panel-heading + .list-group {
.list-group-item:first-child {
border-top-width: 0;
}
}
.list-group + .panel-footer {
border-top-width: 0;
}
// Tables in panels
//
// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
// watch it go full width.
.panel {
> .table,
> .table-responsive > .table,
> .panel-collapse > .table {
margin-bottom: 0;
caption {
padding-left: @panel-body-padding;
padding-right: @panel-body-padding;
}
}
// Add border top radius for first one
> .table:first-child,
> .table-responsive:first-child > .table:first-child {
.border-top-radius((@panel-border-radius - 1));
> thead:first-child,
> tbody:first-child {
> tr:first-child {
border-top-left-radius: (@panel-border-radius - 1);
border-top-right-radius: (@panel-border-radius - 1);
td:first-child,
th:first-child {
border-top-left-radius: (@panel-border-radius - 1);
}
td:last-child,
th:last-child {
border-top-right-radius: (@panel-border-radius - 1);
}
}
}
}
// Add border bottom radius for last one
> .table:last-child,
> .table-responsive:last-child > .table:last-child {
.border-bottom-radius((@panel-border-radius - 1));
> tbody:last-child,
> tfoot:last-child {
> tr:last-child {
border-bottom-left-radius: (@panel-border-radius - 1);
border-bottom-right-radius: (@panel-border-radius - 1);
td:first-child,
th:first-child {
border-bottom-left-radius: (@panel-border-radius - 1);
}
td:last-child,
th:last-child {
border-bottom-right-radius: (@panel-border-radius - 1);
}
}
}
}
> .panel-body + .table,
> .panel-body + .table-responsive,
> .table + .panel-body,
> .table-responsive + .panel-body {
border-top: 1px solid @table-border-color;
}
> .table > tbody:first-child > tr:first-child th,
> .table > tbody:first-child > tr:first-child td {
border-top: 0;
}
> .table-bordered,
> .table-responsive > .table-bordered {
border: 0;
> thead,
> tbody,
> tfoot {
> tr {
> th:first-child,
> td:first-child {
border-left: 0;
}
> th:last-child,
> td:last-child {
border-right: 0;
}
}
}
> thead,
> tbody {
> tr:first-child {
> td,
> th {
border-bottom: 0;
}
}
}
> tbody,
> tfoot {
> tr:last-child {
> td,
> th {
border-bottom: 0;
}
}
}
}
> .table-responsive {
border: 0;
margin-bottom: 0;
}
}
// Collapsable panels (aka, accordion)
//
// Wrap a series of panels in `.panel-group` to turn them into an accordion with
// the help of our collapse JavaScript plugin.
.panel-group {
margin-bottom: @line-height-computed;
// Tighten up margin so it's only between panels
.panel {
margin-bottom: 0;
border-radius: @panel-border-radius;
+ .panel {
margin-top: 5px;
}
}
.panel-heading {
border-bottom: 0;
+ .panel-collapse > .panel-body,
+ .panel-collapse > .list-group {
border-top: 1px solid @panel-inner-border;
}
}
.panel-footer {
border-top: 0;
+ .panel-collapse .panel-body {
border-bottom: 1px solid @panel-inner-border;
}
}
}
// Contextual variations
.panel-default {
.panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);
}
.panel-primary {
.panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);
}
.panel-success {
.panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);
}
.panel-info {
.panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);
}
.panel-warning {
.panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);
}
.panel-danger {
.panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);
}

View File

@ -9,37 +9,34 @@
left: 0;
z-index: @zindex-popover;
display: none;
max-width: 276px;
max-width: @popover-max-width;
padding: 1px;
text-align: left; // Reset given new insertion method
// Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
.reset-text();
font-size: @font-size-base;
background-color: @popover-bg;
-webkit-bg-clip: padding-box;
-moz-bg-clip: padding;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
border: 1px solid @popover-fallback-border-color;
border: 1px solid @popover-border-color;
border-radius: @border-radius-large;
.box-shadow(0 5px 10px rgba(0,0,0,.2));
// Overrides for proper insertion
white-space: normal;
// Offset the popover to account for the popover arrow
&.top { margin-top: -10px; }
&.right { margin-left: 10px; }
&.bottom { margin-top: 10px; }
&.left { margin-left: -10px; }
&.top { margin-top: -@popover-arrow-width; }
&.right { margin-left: @popover-arrow-width; }
&.bottom { margin-top: @popover-arrow-width; }
&.left { margin-left: -@popover-arrow-width; }
}
.popover-title {
margin: 0; // reset heading margin
padding: 8px 14px;
font-size: @font-size-base;
font-weight: normal;
line-height: 18px;
background-color: @popover-title-bg;
border-bottom: 1px solid darken(@popover-title-bg, 5%);
border-radius: 5px 5px 0 0;
border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
}
.popover-content {
@ -50,60 +47,65 @@
//
// .arrow is outer, .arrow:after is inner
.popover .arrow,
.popover .arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
.popover > .arrow {
&,
&:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
}
.popover .arrow {
.popover > .arrow {
border-width: @popover-arrow-outer-width;
}
.popover .arrow:after {
.popover > .arrow:after {
border-width: @popover-arrow-width;
content: "";
}
.popover {
&.top .arrow {
&.top > .arrow {
left: 50%;
margin-left: -@popover-arrow-outer-width;
border-bottom-width: 0;
border-top-color: #999; // IE8 fallback
border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-top-color: @popover-arrow-outer-color;
bottom: -@popover-arrow-outer-width;
&:after {
content: " ";
bottom: 1px;
margin-left: -@popover-arrow-width;
border-bottom-width: 0;
border-top-color: @popover-arrow-color;
}
}
&.right .arrow {
&.right > .arrow {
top: 50%;
left: -@popover-arrow-outer-width;
margin-top: -@popover-arrow-outer-width;
border-left-width: 0;
border-right-color: #999; // IE8 fallback
border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-right-color: @popover-arrow-outer-color;
&:after {
content: " ";
left: 1px;
bottom: -@popover-arrow-width;
border-left-width: 0;
border-right-color: @popover-arrow-color;
}
}
&.bottom .arrow {
&.bottom > .arrow {
left: 50%;
margin-left: -@popover-arrow-outer-width;
border-top-width: 0;
border-bottom-color: #999; // IE8 fallback
border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-bottom-color: @popover-arrow-outer-color;
top: -@popover-arrow-outer-width;
&:after {
content: " ";
top: 1px;
margin-left: -@popover-arrow-width;
border-top-width: 0;
@ -111,19 +113,19 @@
}
}
&.left .arrow {
&.left > .arrow {
top: 50%;
right: -@popover-arrow-outer-width;
margin-top: -@popover-arrow-outer-width;
border-right-width: 0;
border-left-color: #999; // IE8 fallback
border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-left-color: @popover-arrow-outer-color;
&:after {
content: " ";
right: 1px;
border-right-width: 0;
border-left-color: @popover-arrow-color;
bottom: -@popover-arrow-width;
}
}
}

View File

@ -1,85 +1,101 @@
//
// Basic print styles
// --------------------------------------------------
// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
// ==========================================================================
// Print styles.
// Inlined to avoid the additional HTTP request: h5bp.com/r
// ==========================================================================
@media print {
*,
*:before,
*:after {
background: transparent !important;
color: #000 !important; // Black prints faster: h5bp.com/s
box-shadow: none !important;
text-shadow: none !important;
}
* {
text-shadow: none !important;
color: #000 !important; // Black prints faster: h5bp.com/s
background: transparent !important;
box-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
// Don't show links that are fragment identifiers,
// or use the `javascript:` pseudo protocol
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
// Don't show links for images, or javascript/internal links
.ir a:after,
a[href^="javascript:"]:after,
a[href^="#"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group; // h5bp.com/t
}
thead {
display: table-header-group; // h5bp.com/t
}
tr,
img {
page-break-inside: avoid;
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
@page {
margin: 2cm .5cm;
}
h2,
h3 {
page-break-after: avoid;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
// Bootstrap specific changes start
h2,
h3 {
page-break-after: avoid;
}
// Bootstrap components
.navbar {
display: none;
}
.btn,
.dropup > .btn {
> .caret {
border-top-color: #000 !important;
}
}
.label {
border: 1px solid #000;
}
// Bootstrap components
.navbar {
display: none;
}
.table td,
.table th {
background-color: #fff !important;
}
.btn > .caret,
.dropup > .btn > .caret {
border-top-color: #000 !important;
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
td,
th {
background-color: #fff !important;
}
}
.table-bordered {
th,
td {
border: 1px solid #ddd !important;
}
}
// Bootstrap specific changes end
}

View File

@ -6,38 +6,19 @@
// Bar animations
// -------------------------
// Webkit
// WebKit
@-webkit-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// Firefox
@-moz-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// IE9
@-ms-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// Opera
@-o-keyframes progress-bar-stripes {
from { background-position: 0 0; }
to { background-position: 40px 0; }
}
// Spec
// Spec and IE10+
@keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// Bar itself
// -------------------------
@ -47,7 +28,7 @@
height: @line-height-computed;
margin-bottom: @line-height-computed;
background-color: @progress-bg;
border-radius: @border-radius-base;
border-radius: @progress-border-radius;
.box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
}
@ -57,62 +38,50 @@
width: 0%;
height: 100%;
font-size: @font-size-small;
color: #fff;
line-height: @line-height-computed;
color: @progress-bar-color;
text-align: center;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
background-color: @progress-bar-bg;
.box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
.transition(width .6s ease);
}
// Striped bars
.progress-striped .progress-bar {
#gradient > .striped(@progress-bar-bg);
.background-size(40px 40px);
//
// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
// `.progress-bar-striped` class, which you just add to an existing
// `.progress-bar`.
.progress-striped .progress-bar,
.progress-bar-striped {
#gradient > .striped();
background-size: 40px 40px;
}
// Call animation for the active one
.progress.active .progress-bar {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-moz-animation: progress-bar-stripes 2s linear infinite;
-ms-animation: progress-bar-stripes 2s linear infinite;
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
//
// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
// `.progress-bar.active` approach.
.progress.active .progress-bar,
.progress-bar.active {
.animation(progress-bar-stripes 2s linear infinite);
}
// Variations
// -------------------------
// Danger (red)
.progress-bar-danger {
background-color: @progress-bar-danger-bg;
.progress-striped & {
#gradient > .striped(@progress-bar-danger-bg);
}
}
// Success (green)
.progress-bar-success {
background-color: @progress-bar-success-bg;
.progress-striped & {
#gradient > .striped(@progress-bar-success-bg);
}
.progress-bar-variant(@progress-bar-success-bg);
}
// Warning (orange)
.progress-bar-warning {
background-color: @progress-bar-warning-bg;
.progress-striped & {
#gradient > .striped(@progress-bar-warning-bg);
}
}
// Info (teal)
.progress-bar-info {
background-color: @progress-bar-info-bg;
.progress-striped & {
#gradient > .striped(@progress-bar-info-bg);
}
.progress-bar-variant(@progress-bar-info-bg);
}
.progress-bar-warning {
.progress-bar-variant(@progress-bar-warning-bg);
}
.progress-bar-danger {
.progress-bar-variant(@progress-bar-danger-bg);
}

View File

@ -0,0 +1,35 @@
// Embeds responsive
//
// Credit: Nicolas Gallagher and SUIT CSS.
.embed-responsive {
position: relative;
display: block;
height: 0;
padding: 0;
overflow: hidden;
.embed-responsive-item,
iframe,
embed,
object,
video {
position: absolute;
top: 0;
left: 0;
bottom: 0;
height: 100%;
width: 100%;
border: 0;
}
}
// Modifier class for 16:9 aspect ratio
.embed-responsive-16by9 {
padding-bottom: 56.25%;
}
// Modifier class for 4:3 aspect ratio
.embed-responsive-4by3 {
padding-bottom: 75%;
}

View File

@ -3,125 +3,192 @@
// --------------------------------------------------
// IE10 Metro responsive
// Required for Windows 8 Metro split-screen snapping with IE10
// IE10 in Windows (Phone) 8
//
// Support for responsive views via media queries is kind of borked in IE10, for
// Surface/desktop in split view and for Windows Phone 8. This particular fix
// must be accompanied by a snippet of JavaScript to sniff the user agent and
// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
// our Getting Started page for more information on this bug.
//
// For more information, see the following:
//
// Issue: https://github.com/twbs/bootstrap/issues/10497
// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
@-ms-viewport{
@-ms-viewport {
width: device-width;
}
// IE10 on Windows Phone 8
// IE10 on WP8 doesn't report CSS pixels, but actual device pixels. In
// other words, say on a Lumia, you'll get 768px as the device width,
// meaning users will see the tablet styles and not phone styles.
//
// Alternatively you can override this with JS (see source below), but
// we won't be doing that here given our limited scope.
//
// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
@media screen and (max-width: 400px) {
@-ms-viewport{
width: 320px;
}
}
// Hide from screenreaders and browsers
// Credit: HTML5 Boilerplate
.hidden {
display: none;
visibility: hidden;
}
// Visibility utilities
// For Phones
.visible-sm {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
.responsive-invisibility();
}
.visible-md { display: none !important; }
.visible-lg { display: none !important; }
.hidden-sm { display: none !important; }
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
display: none !important;
}
.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
}
}
.visible-xs-block {
@media (max-width: @screen-xs-max) {
display: block !important;
}
}
.visible-xs-inline {
@media (max-width: @screen-xs-max) {
display: inline !important;
}
}
.visible-xs-inline-block {
@media (max-width: @screen-xs-max) {
display: inline-block !important;
}
}
.visible-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
.visible-sm-block {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
display: block !important;
}
}
.visible-sm-inline {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
display: inline !important;
}
}
.visible-sm-inline-block {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
display: inline-block !important;
}
}
.visible-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
}
}
.visible-md-block {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
display: block !important;
}
}
.visible-md-inline {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
display: inline !important;
}
}
.visible-md-inline-block {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
display: inline-block !important;
}
}
.visible-lg {
@media (min-width: @screen-lg-min) {
.responsive-visibility();
}
}
.visible-lg-block {
@media (min-width: @screen-lg-min) {
display: block !important;
}
}
.visible-lg-inline {
@media (min-width: @screen-lg-min) {
display: inline !important;
}
}
.visible-lg-inline-block {
@media (min-width: @screen-lg-min) {
display: inline-block !important;
}
}
.hidden-xs {
@media (max-width: @screen-xs-max) {
.responsive-invisibility();
}
}
.hidden-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility();
}
}
.hidden-md {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility();
}
}
.hidden-lg {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
}
// Tablets & small desktops only
@media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
.visible-sm { display: none !important; }
.visible-md {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
}
.visible-lg { display: none !important; }
.hidden-sm {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
}
.hidden-md { display: none !important; }
.hidden-lg {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
@media (min-width: @screen-lg-min) {
.responsive-invisibility();
}
}
// For desktops
@media (min-width: @screen-desktop) {
.visible-sm { display: none !important; }
.visible-md { display: none !important; }
.visible-lg {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
}
.hidden-sm {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
}
.hidden-md {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
}
.hidden-lg { display: none !important; }
}
// Print utilities
.visible-print { display: none !important; }
.hidden-print { }
//
// Media queries are placed on the inside to be mixin-friendly.
@media print {
.visible-print {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
// Note: Deprecated .visible-print as of v3.2.0
.visible-print {
.responsive-invisibility();
@media print {
.responsive-visibility();
}
}
.visible-print-block {
display: none !important;
@media print {
display: block !important;
}
}
.visible-print-inline {
display: none !important;
@media print {
display: inline !important;
}
}
.visible-print-inline-block {
display: none !important;
@media print {
display: inline-block !important;
}
}
.hidden-print {
@media print {
.responsive-invisibility();
}
.hidden-print { display: none !important; }
}

View File

@ -4,18 +4,23 @@
// Reset the box-sizing
// -------------------------
//
// Heads up! This reset may cause conflicts with some third-party widgets.
// For recommendations on resolving such conflicts, see
// http://getbootstrap.com/getting-started/#third-box-sizing
* {
.box-sizing(border-box);
}
*:before,
*:after {
.box-sizing(border-box);
}
// Body reset
// -------------------------
html {
font-size: 62.5%;
font-size: 10px;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
@ -27,7 +32,7 @@ body {
background-color: @body-bg;
}
// Reset fonts for revelant elements
// Reset fonts for relevant elements
input,
button,
select,
@ -39,43 +44,118 @@ textarea {
// Links
// -------------------------
a {
color: @link-color;
text-decoration: none;
&:hover,
&:focus {
color: @link-hover-color;
text-decoration: @link-hover-decoration;
}
&:focus {
.tab-focus();
}
}
a:hover,
a:focus {
color: @link-hover-color;
text-decoration: underline;
}
a:focus {
.tab-focus();
// Figures
//
// We reset this here because previously Normalize had no `figure` margins. This
// ensures we don't break anyone's use of the element.
figure {
margin: 0;
}
// Images
// -------------------------
img {
// Responsive images (ensure images don't scale beyond their parents)
max-width: 100%; // Part 1: Set a maxium relative to the parent
height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
// Match vertical alignment with other comment elements
vertical-align: middle;
}
// Responsive images (ensure images don't scale beyond their parents)
.img-responsive {
.img-responsive();
}
// Rounded corners
.img-rounded {
border-radius: 6px;
border-radius: @border-radius-large;
}
// Image thumbnails
// See thumbnails.less for `.img-thumbnail`
//
// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
.img-thumbnail {
padding: @thumbnail-padding;
line-height: @line-height-base;
background-color: @thumbnail-bg;
border: 1px solid @thumbnail-border;
border-radius: @thumbnail-border-radius;
.transition(all .2s ease-in-out);
// Keep them at most 100% wide
.img-responsive(inline-block);
}
// Perfect circle
.img-circle {
border-radius: 500px; // crank the border-radius so it works with most reasonably sized images
border-radius: 50%; // set radius in percents
}
// Horizontal rules
hr {
margin-top: @line-height-computed;
margin-bottom: @line-height-computed;
border: 0;
border-top: 1px solid @hr-border;
}
// Only display content to screen readers
//
// See: http://a11yproject.com/posts/how-to-hide-content/
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
// Use in conjunction with .sr-only to only display content when it's focused.
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
// Credit: HTML5 Boilerplate
.sr-only-focusable {
&:active,
&:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
}
// iOS "clickable elements" fix for role="button"
//
// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
// for traditionally non-focusable elements with role="button"
// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
[role="button"] {
cursor: pointer;
}

View File

@ -4,45 +4,57 @@
table {
max-width: 100%;
background-color: @table-bg;
}
caption {
padding-top: @table-cell-padding;
padding-bottom: @table-cell-padding;
color: @text-muted;
text-align: left;
}
th {
text-align: left;
}
// BASELINE STYLES
// ---------------
// Baseline styles
.table {
width: 100%;
max-width: 100%;
margin-bottom: @line-height-computed;
// Cells
thead > tr > th,
tbody > tr > th,
thead > tr > td,
tbody > tr > td {
padding: 8px;
line-height: @line-height-base;
vertical-align: top;
border-top: 1px solid @table-border-color;
> thead,
> tbody,
> tfoot {
> tr {
> th,
> td {
padding: @table-cell-padding;
line-height: @line-height-base;
vertical-align: top;
border-top: 1px solid @table-border-color;
}
}
}
// Bottom align for column headings
thead > tr > th {
> thead > tr > th {
vertical-align: bottom;
border-bottom: 2px solid @table-border-color;
}
// Remove top border from thead by default
caption + thead tr:first-child th,
caption + thead tr:first-child td,
colgroup + thead tr:first-child th,
colgroup + thead tr:first-child td,
thead:first-child tr:first-child th,
thead:first-child tr:first-child td {
border-top: 0;
> caption + thead,
> colgroup + thead,
> thead:first-child {
> tr:first-child {
> th,
> td {
border-top: 0;
}
}
}
// Account for multiple tbody instances
tbody + tbody {
> tbody + tbody {
border-top: 2px solid @table-border-color;
}
@ -53,192 +65,170 @@ th {
}
// CONDENSED TABLE W/ HALF PADDING
// -------------------------------
// Condensed table w/ half padding
.table-condensed {
thead > tr > th,
tbody > tr > th,
thead > tr > td,
tbody > tr > td {
padding: 4px 5px;
> thead,
> tbody,
> tfoot {
> tr {
> th,
> td {
padding: @table-condensed-cell-padding;
}
}
}
}
// BORDERED VERSION
// ----------------
// Bordered version
//
// Add borders all around the table and between all the columns.
.table-bordered {
border: 1px solid @table-border-color;
border-collapse: separate; // Done so we can round those corners!
border-left: 0;
border-radius: @border-radius-base;
> thead > tr > th,
> tbody > tr > th,
> thead > tr > td,
> tbody > tr > td {
border-left: 1px solid @table-border-color;
> thead,
> tbody,
> tfoot {
> tr {
> th,
> td {
border: 1px solid @table-border-color;
}
}
}
// Prevent a double border
> caption + thead > tr:first-child th,
> caption + tbody > tr:first-child th,
> caption + tbody > tr:first-child td,
> colgroup + thead > tr:first-child th,
> colgroup + tbody > tr:first-child th,
> colgroup + tbody > tr:first-child td,
> thead:first-child > tr:first-child th,
> tbody:first-child > tr:first-child th,
> tbody:first-child > tr:first-child td {
border-top: 0;
> thead > tr {
> th,
> td {
border-bottom-width: 2px;
}
}
// For first th/td in the first row in the first thead or tbody
> thead:first-child > tr:first-child > th:first-child,
> tbody:first-child > tr:first-child > td:first-child,
> tbody:first-child > tr:first-child > th:first-child {
border-top-left-radius: @border-radius-base;
}
// For last th/td in the first row in the first thead or tbody
> thead:first-child > tr:first-child > th:last-child,
> tbody:first-child > tr:first-child > td:last-child,
> tbody:first-child > tr:first-child > th:last-child {
border-top-right-radius: @border-radius-base;
}
// For first th/td (can be either) in the last row in the last thead, tbody, and tfoot
> thead:last-child > tr:last-child > th:first-child,
> tbody:last-child > tr:last-child > td:first-child,
> tbody:last-child > tr:last-child > th:first-child,
> tfoot:last-child > tr:last-child > td:first-child,
> tfoot:last-child > tr:last-child > th:first-child {
border-bottom-left-radius: @border-radius-base;
}
// For last th/td (can be either) in the last row in the last thead, tbody, and tfoot
> thead:last-child > tr:last-child > th:last-child,
> tbody:last-child > tr:last-child > td:last-child,
> tbody:last-child > tr:last-child > th:last-child,
> tfoot:last-child > tr:last-child > td:last-child,
> tfoot:last-child > tr:last-child > th:last-child {
border-bottom-right-radius: @border-radius-base;
}
// Clear border-radius for first and last td in the last row in the last tbody for table with tfoot
> tfoot + tbody:last-child > tr:last-child > td:first-child {
border-bottom-left-radius: 0;
}
> tfoot + tbody:last-child > tr:last-child > td:last-child {
border-bottom-right-radius: 0;
}
// Special fixes to round the left border on the first td/th
> caption + thead > tr:first-child > th:first-child,
> caption + tbody > tr:first-child > td:first-child,
> colgroup + thead > tr:first-child > th:first-child,
> colgroup + tbody > tr:first-child > td:first-child {
border-top-left-radius: @border-radius-base;
}
> caption + thead > tr:first-child > th:last-child,
> caption + tbody > tr:first-child > td:last-child,
> colgroup + thead > tr:first-child > th:last-child,
> colgroup + tbody > tr:first-child > td:last-child {
border-top-right-radius: @border-radius-base;
}
}
// ZEBRA-STRIPING
// --------------
// Zebra-striping
//
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
.table-striped {
> tbody {
> tr:nth-child(odd) > td,
> tr:nth-child(odd) > th {
background-color: @table-bg-accent;
}
> tbody > tr:nth-of-type(odd) {
background-color: @table-bg-accent;
}
}
// HOVER EFFECT
// ------------
// Hover effect
//
// Placed here since it has to come after the potential zebra striping
.table-hover {
> tbody {
> tr:hover > td,
> tr:hover > th {
background-color: @table-bg-hover;
}
> tbody > tr:hover {
background-color: @table-bg-hover;
}
}
// TABLE CELL SIZING
// -----------------
// Table cell sizing
//
// Reset default table behavior
table col[class^="col-"] {
table col[class*="col-"] {
position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
float: none;
display: table-column;
}
table td[class^="col-"],
table th[class^="col-"] {
float: none;
display: table-cell;
}
// TABLE BACKGROUNDS
// -----------------
// Exact selectors below required to override .table-striped
.table > tbody > tr {
> td.success,
> th.success,
&.success > td {
background-color: @state-success-bg;
border-color: @state-success-border;
}
> td.danger,
> th.danger,
&.danger > td {
background-color: @state-danger-bg;
border-color: @state-danger-border;
}
> td.warning,
> th.warning,
&.warning > td {
background-color: @state-warning-bg;
border-color: @state-warning-border;
table {
td,
th {
&[class*="col-"] {
position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
float: none;
display: table-cell;
}
}
}
// Hover states for .table-hover
.table-hover > tbody > tr {
> td.success:hover,
> th.success:hover,
&.success:hover > td {
background-color: darken(@state-success-bg, 5%);
border-color: darken(@state-success-border, 5%);
}
> td.danger:hover,
> th.danger:hover,
&.danger:hover > td {
background-color: darken(@state-danger-bg, 5%);
border-color: darken(@state-danger-border, 5%);
}
> td.warning:hover,
> th.warning:hover,
&.warning:hover > td {
background-color: darken(@state-warning-bg, 5%);
border-color: darken(@state-warning-border, 5%);
// Table backgrounds
//
// Exact selectors below required to override `.table-striped` and prevent
// inheritance to nested tables.
// Generate the contextual variants
.table-row-variant(active; @table-bg-active);
.table-row-variant(success; @state-success-bg);
.table-row-variant(info; @state-info-bg);
.table-row-variant(warning; @state-warning-bg);
.table-row-variant(danger; @state-danger-bg);
// Responsive tables
//
// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
// by enabling horizontal scrolling. Only applies <768px. Everything above that
// will display normally.
.table-responsive {
overflow-x: auto;
min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
@media screen and (max-width: @screen-xs-max) {
width: 100%;
margin-bottom: (@line-height-computed * 0.75);
overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid @table-border-color;
// Tighten up spacing
> .table {
margin-bottom: 0;
// Ensure the content doesn't wrap
> thead,
> tbody,
> tfoot {
> tr {
> th,
> td {
white-space: nowrap;
}
}
}
}
// Special overrides for the bordered tables
> .table-bordered {
border: 0;
// Nuke the appropriate borders so that the parent can handle them
> thead,
> tbody,
> tfoot {
> tr {
> th:first-child,
> td:first-child {
border-left: 0;
}
> th:last-child,
> td:last-child {
border-right: 0;
}
}
}
// Only nuke the last row's bottom-border in `tbody` and `tfoot` since
// chances are there will be only one `tr` in a `thead` and that would
// remove the border altogether.
> tbody,
> tfoot {
> tr:last-child {
> th,
> td {
border-bottom: 0;
}
}
}
}
}
}

View File

@ -0,0 +1,291 @@
/*!
* Bootstrap v3.3.5 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
//
// Load core variables and mixins
// --------------------------------------------------
@import "variables.less";
@import "mixins.less";
//
// Buttons
// --------------------------------------------------
// Common styles
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
@shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
.box-shadow(@shadow);
// Reset the shadow
&:active,
&.active {
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
}
&.disabled,
&[disabled],
fieldset[disabled] & {
.box-shadow(none);
}
.badge {
text-shadow: none;
}
}
// Mixin for generating new styles
.btn-styles(@btn-color: #555) {
#gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));
.reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620
background-repeat: repeat-x;
border-color: darken(@btn-color, 14%);
&:hover,
&:focus {
background-color: darken(@btn-color, 12%);
background-position: 0 -15px;
}
&:active,
&.active {
background-color: darken(@btn-color, 12%);
border-color: darken(@btn-color, 14%);
}
&.disabled,
&[disabled],
fieldset[disabled] & {
&,
&:hover,
&:focus,
&.focus,
&:active,
&.active {
background-color: darken(@btn-color, 12%);
background-image: none;
}
}
}
// Common styles
.btn {
// Remove the gradient for the pressed/active state
&:active,
&.active {
background-image: none;
}
}
// Apply the mixin to the buttons
.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
.btn-primary { .btn-styles(@btn-primary-bg); }
.btn-success { .btn-styles(@btn-success-bg); }
.btn-info { .btn-styles(@btn-info-bg); }
.btn-warning { .btn-styles(@btn-warning-bg); }
.btn-danger { .btn-styles(@btn-danger-bg); }
//
// Images
// --------------------------------------------------
.thumbnail,
.img-thumbnail {
.box-shadow(0 1px 2px rgba(0,0,0,.075));
}
//
// Dropdowns
// --------------------------------------------------
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
#gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
background-color: darken(@dropdown-link-hover-bg, 5%);
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
#gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
background-color: darken(@dropdown-link-active-bg, 5%);
}
//
// Navbar
// --------------------------------------------------
// Default navbar
.navbar-default {
#gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);
.reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
border-radius: @navbar-border-radius;
@shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
.box-shadow(@shadow);
.navbar-nav > .open > a,
.navbar-nav > .active > a {
#gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));
.box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
}
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255,255,255,.25);
}
// Inverted navbar
.navbar-inverse {
#gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);
.reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
border-radius: @navbar-border-radius;
.navbar-nav > .open > a,
.navbar-nav > .active > a {
#gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));
.box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
}
}
// Undo rounded corners in static and fixed navbars
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
// Fix active state of dropdown items in collapsed mode
@media (max-width: @grid-float-breakpoint-max) {
.navbar .navbar-nav .open .dropdown-menu > .active > a {
&,
&:hover,
&:focus {
color: #fff;
#gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
}
}
}
//
// Alerts
// --------------------------------------------------
// Common styles
.alert {
text-shadow: 0 1px 0 rgba(255,255,255,.2);
@shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
.box-shadow(@shadow);
}
// Mixin for generating new styles
.alert-styles(@color) {
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));
border-color: darken(@color, 15%);
}
// Apply the mixin to the alerts
.alert-success { .alert-styles(@alert-success-bg); }
.alert-info { .alert-styles(@alert-info-bg); }
.alert-warning { .alert-styles(@alert-warning-bg); }
.alert-danger { .alert-styles(@alert-danger-bg); }
//
// Progress bars
// --------------------------------------------------
// Give the progress background some depth
.progress {
#gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)
}
// Mixin for generating new styles
.progress-bar-styles(@color) {
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));
}
// Apply the mixin to the progress bars
.progress-bar { .progress-bar-styles(@progress-bar-bg); }
.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }
.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }
.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }
.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }
// Reset the striped class because our mixins don't do multiple gradients and
// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
.progress-bar-striped {
#gradient > .striped();
}
//
// List groups
// --------------------------------------------------
.list-group {
border-radius: @border-radius-base;
.box-shadow(0 1px 2px rgba(0,0,0,.075));
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);
#gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));
border-color: darken(@list-group-active-border, 7.5%);
.badge {
text-shadow: none;
}
}
//
// Panels
// --------------------------------------------------
// Common styles
.panel {
.box-shadow(0 1px 2px rgba(0,0,0,.05));
}
// Mixin for generating new styles
.panel-heading-styles(@color) {
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));
}
// Apply the mixin to the panel headings only
.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }
.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }
.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }
.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }
.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }
.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }
//
// Wells
// --------------------------------------------------
.well {
#gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);
border-color: darken(@well-bg, 10%);
@shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
.box-shadow(@shadow);
}

View File

@ -3,41 +3,34 @@
// --------------------------------------------------
// Base classes
// For thumbnail block-level composite components and simple image styles
// The actual thumbnailed element
// Can be `a`, `div`, or `img`
.thumbnail,
.img-thumbnail {
padding: 4px;
// Mixin and adjust the regular image class
.thumbnail {
display: block;
padding: @thumbnail-padding;
margin-bottom: @line-height-computed;
line-height: @line-height-base;
background-color: @thumbnail-bg;
border: 1px solid @thumbnail-border;
border-radius: @thumbnail-border-radius;
.transition(all .2s ease-in-out);
}
.thumbnail {
display: block;
}
.img-thumbnail {
display: inline-block;
}
.transition(border .2s ease-in-out);
// Add a hover state for linked versions only
a.thumbnail:hover,
a.thumbnail:focus {
border-color: @link-color;
}
> img,
a > img {
&:extend(.img-responsive);
margin-left: auto;
margin-right: auto;
}
// Images and captions
.thumbnail > img {
display: block;
max-width: 100%;
margin-left: auto;
margin-right: auto;
}
.thumbnail .caption {
padding: 9px;
color: @thumbnail-caption-color;
// Add a hover state for linked versions only
a&:hover,
a&:focus,
a&.active {
border-color: @link-color;
}
// Image captions
.caption {
padding: @thumbnail-caption-padding;
color: @thumbnail-caption-color;
}
}

View File

@ -8,25 +8,26 @@
position: absolute;
z-index: @zindex-tooltip;
display: block;
visibility: visible;
font-size: @font-size-mini;
line-height: 1.4;
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
.reset-text();
font-size: @font-size-small;
.opacity(0);
&.in { .opacity(1); }
&.top { margin-top: -3px; padding: 5px 0; }
&.right { margin-left: 3px; padding: 0 5px; }
&.bottom { margin-top: 3px; padding: 5px 0; }
&.left { margin-left: -3px; padding: 0 5px; }
&.in { .opacity(@tooltip-opacity); }
&.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
&.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
&.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }
&.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
}
// Wrapper for the tooltip content
.tooltip-inner {
max-width: 200px;
max-width: @tooltip-max-width;
padding: 3px 8px;
color: @tooltip-color;
text-align: center;
text-decoration: none;
background-color: @tooltip-bg;
border-radius: @border-radius-base;
}
@ -39,6 +40,7 @@
border-color: transparent;
border-style: solid;
}
// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
.tooltip {
&.top .tooltip-arrow {
bottom: 0;
@ -47,6 +49,20 @@
border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
border-top-color: @tooltip-arrow-color;
}
&.top-left .tooltip-arrow {
bottom: 0;
right: @tooltip-arrow-width;
margin-bottom: -@tooltip-arrow-width;
border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
border-top-color: @tooltip-arrow-color;
}
&.top-right .tooltip-arrow {
bottom: 0;
left: @tooltip-arrow-width;
margin-bottom: -@tooltip-arrow-width;
border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
border-top-color: @tooltip-arrow-color;
}
&.right .tooltip-arrow {
top: 50%;
left: 0;
@ -68,4 +84,18 @@
border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
border-bottom-color: @tooltip-arrow-color;
}
&.bottom-left .tooltip-arrow {
top: 0;
right: @tooltip-arrow-width;
margin-top: -@tooltip-arrow-width;
border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
border-bottom-color: @tooltip-arrow-color;
}
&.bottom-right .tooltip-arrow {
top: 0;
left: @tooltip-arrow-width;
margin-top: -@tooltip-arrow-width;
border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
border-bottom-color: @tooltip-arrow-color;
}
}

View File

@ -3,50 +3,6 @@
// --------------------------------------------------
// Body text
// -------------------------
p {
margin: 0 0 (@line-height-computed / 2);
}
.lead {
margin-bottom: @line-height-computed;
font-size: (@font-size-base * 1.5);
font-weight: 200;
line-height: 1.4;
}
// Emphasis & misc
// -------------------------
// Ex: 14px base font * 85% = about 12px
small { font-size: 85%; }
cite { font-style: normal; }
// Utility classes
.text-muted { color: @gray-light; }
a.text-muted:hover,
a.text-muted:focus { color: darken(@gray-light, 10%); }
.text-warning { color: @state-warning-text; }
a.text-warning:hover,
a.text-warning:focus { color: darken(@state-warning-text, 10%); }
.text-danger { color: @state-danger-text; }
a.text-danger:hover,
a.text-danger:focus { color: darken(@state-danger-text, 10%); }
.text-success { color: @state-success-text; }
a.text-success:hover,
a.text-success:focus { color: darken(@state-success-text, 10%); }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-center { text-align: center; }
// Headings
// -------------------------
@ -55,37 +11,134 @@ h1, h2, h3, h4, h5, h6,
font-family: @headings-font-family;
font-weight: @headings-font-weight;
line-height: @headings-line-height;
small {
color: @headings-color;
small,
.small {
font-weight: normal;
line-height: 1;
color: @gray-light;
color: @headings-small-color;
}
}
h1,
h2,
h3 {
h1, .h1,
h2, .h2,
h3, .h3 {
margin-top: @line-height-computed;
margin-bottom: (@line-height-computed / 2);
small,
.small {
font-size: 65%;
}
}
h4,
h5,
h6 {
h4, .h4,
h5, .h5,
h6, .h6 {
margin-top: (@line-height-computed / 2);
margin-bottom: (@line-height-computed / 2);
small,
.small {
font-size: 75%;
}
}
h1, .h1 { font-size: ceil(@font-size-base * 2.70); } // ~38px
h2, .h2 { font-size: ceil(@font-size-base * 2.25); } // ~32px
h3, .h3 { font-size: ceil(@font-size-base * 1.70); } // ~24px
h4, .h4 { font-size: ceil(@font-size-base * 1.25); } // ~18px
h5, .h5 { font-size: @font-size-base; }
h6, .h6 { font-size: ceil(@font-size-base * 0.85); } // ~12px
h1, .h1 { font-size: @font-size-h1; }
h2, .h2 { font-size: @font-size-h2; }
h3, .h3 { font-size: @font-size-h3; }
h4, .h4 { font-size: @font-size-h4; }
h5, .h5 { font-size: @font-size-h5; }
h6, .h6 { font-size: @font-size-h6; }
h1 small, .h1 small { font-size: ceil(@font-size-base * 1.70); } // ~24px
h2 small, .h2 small { font-size: ceil(@font-size-base * 1.25); } // ~18px
h3 small, .h3 small,
h4 small, .h4 small { font-size: @font-size-base; }
// Body text
// -------------------------
p {
margin: 0 0 (@line-height-computed / 2);
}
.lead {
margin-bottom: @line-height-computed;
font-size: floor((@font-size-base * 1.15));
font-weight: 300;
line-height: 1.4;
@media (min-width: @screen-sm-min) {
font-size: (@font-size-base * 1.5);
}
}
// Emphasis & misc
// -------------------------
// Ex: (12px small font / 14px base font) * 100% = about 85%
small,
.small {
font-size: floor((100% * @font-size-small / @font-size-base));
}
mark,
.mark {
background-color: @state-warning-bg;
padding: .2em;
}
// Alignment
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-justify { text-align: justify; }
.text-nowrap { white-space: nowrap; }
// Transformation
.text-lowercase { text-transform: lowercase; }
.text-uppercase { text-transform: uppercase; }
.text-capitalize { text-transform: capitalize; }
// Contextual colors
.text-muted {
color: @text-muted;
}
.text-primary {
.text-emphasis-variant(@brand-primary);
}
.text-success {
.text-emphasis-variant(@state-success-text);
}
.text-info {
.text-emphasis-variant(@state-info-text);
}
.text-warning {
.text-emphasis-variant(@state-warning-text);
}
.text-danger {
.text-emphasis-variant(@state-danger-text);
}
// Contextual backgrounds
// For now we'll leave these alongside the text classes until v4 when we can
// safely shift things around (per SemVer rules).
.bg-primary {
// Given the contrast here, this is the only class to have its color inverted
// automatically.
color: #fff;
.bg-variant(@brand-primary);
}
.bg-success {
.bg-variant(@state-success-bg);
}
.bg-info {
.bg-variant(@state-info-bg);
}
.bg-warning {
.bg-variant(@state-warning-bg);
}
.bg-danger {
.bg-variant(@state-danger-bg);
}
// Page header
@ -94,25 +147,22 @@ h4 small, .h4 small { font-size: @font-size-base; }
.page-header {
padding-bottom: ((@line-height-computed / 2) - 1);
margin: (@line-height-computed * 2) 0 @line-height-computed;
border-bottom: 1px solid @gray-lighter;
border-bottom: 1px solid @page-header-border-color;
}
// Lists
// --------------------------------------------------
// -------------------------
// Unordered and Ordered lists
ul,
ol {
margin-top: 0;
margin-bottom: (@line-height-computed / 2);
}
ul ul,
ul ol,
ol ol,
ol ul {
margin-bottom: 0;
ul,
ol {
margin-bottom: 0;
}
}
// List options
@ -122,9 +172,12 @@ ol ul {
padding-left: 0;
list-style: none;
}
// Inline turns list items into inline-block
.list-inline {
.list-unstyled();
margin-left: -5px;
> li {
display: inline-block;
padding-left: 5px;
@ -134,6 +187,7 @@ ol ul {
// Description Lists
dl {
margin-top: 0; // Remove browser default
margin-bottom: @line-height-computed;
}
dt,
@ -144,102 +198,104 @@ dt {
font-weight: bold;
}
dd {
margin-left: (@line-height-computed / 2);
margin-left: 0; // Undo browser default
}
// Horizontal layout (like forms)
// Horizontal description lists
//
// Defaults to being stacked without any of the below styles applied, until the
// grid breakpoint is reached (default of ~768px).
.dl-horizontal {
dt {
float: left;
width: (@component-offset-horizontal - 20);
clear: left;
text-align: right;
.text-overflow();
}
dd {
.clearfix(); // Clear the floated `dt` if an empty `dd` is present
margin-left: @component-offset-horizontal;
&:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
}
@media (min-width: @dl-horizontal-breakpoint) {
dt {
float: left;
width: (@dl-horizontal-offset - 20);
clear: left;
text-align: right;
.text-overflow();
}
dd {
margin-left: @dl-horizontal-offset;
}
}
}
// MISC
// ----
// Horizontal rules
hr {
margin: @line-height-computed 0;
border: 0;
border-top: 1px solid @hr-border;
border-bottom: 1px solid #fff;
border-bottom: 1px solid rgba(255,255,255,.5);
}
// Misc
// -------------------------
// Abbreviations and acronyms
abbr[title],
// Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257
// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
abbr[data-original-title] {
cursor: help;
border-bottom: 1px dotted @gray-light;
border-bottom: 1px dotted @abbr-border-color;
}
abbr.initialism {
.initialism {
font-size: 90%;
text-transform: uppercase;
.text-uppercase();
}
// Blockquotes
blockquote {
padding: (@line-height-computed / 2) @line-height-computed;
margin: 0 0 @line-height-computed;
border-left: 5px solid @gray-lighter;
p {
font-size: (@font-size-base * 1.25);
font-weight: 300;
line-height: 1.25;
}
p:last-child {
margin-bottom: 0;
}
small {
display: block;
line-height: @line-height-base;
color: @gray-light;
&:before {
content: '\2014 \00A0';
font-size: @blockquote-font-size;
border-left: 5px solid @blockquote-border-color;
p,
ul,
ol {
&:last-child {
margin-bottom: 0;
}
}
// Float right with text-align: right
&.pull-right {
float: right;
padding-right: 15px;
padding-left: 0;
border-right: 5px solid @gray-lighter;
border-left: 0;
p,
small {
text-align: right;
}
small {
&:before {
content: '';
}
&:after {
content: '\00A0 \2014';
}
// Note: Deprecated small and .small as of v3.1.0
// Context: https://github.com/twbs/bootstrap/issues/11660
footer,
small,
.small {
display: block;
font-size: 80%; // back to default font-size
line-height: @line-height-base;
color: @blockquote-small-color;
&:before {
content: '\2014 \00A0'; // em dash, nbsp
}
}
}
// Quotes
q:before,
q:after,
blockquote:before,
blockquote:after {
content: "";
// Opposite alignment of blockquote
//
// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
.blockquote-reverse,
blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
border-right: 5px solid @blockquote-border-color;
border-left: 0;
text-align: right;
// Account for citation
footer,
small,
.small {
&:before { content: ''; }
&:after {
content: '\00A0 \2014'; // nbsp, em dash
}
}
}
// Addresses
address {
display: block;
margin-bottom: @line-height-computed;
font-style: normal;
line-height: @line-height-base;

View File

@ -9,17 +9,21 @@
.clearfix {
.clearfix();
}
.center-block {
.center-block();
}
.pull-right {
float: right;
float: right !important;
}
.pull-left {
float: left;
float: left !important;
}
// Toggling content
// -------------------------
// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
.hide {
display: none !important;
}
@ -30,7 +34,16 @@
visibility: hidden;
}
.text-hide {
.hide-text();
.text-hide();
}
// Hide from screenreaders and browsers
//
// Credit: HTML5 Boilerplate
.hidden {
display: none !important;
}

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
padding: 19px;
margin-bottom: 20px;
background-color: @well-bg;
border: 1px solid darken(@well-bg, 7%);
border: 1px solid @well-border;
border-radius: @border-radius-base;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
blockquote {
@ -19,11 +19,11 @@
}
// Sizes
.well-large {
.well-lg {
padding: 24px;
border-radius: @border-radius-large;
}
.well-small {
.well-sm {
padding: 9px;
border-radius: @border-radius-small;
}

View File

@ -142,8 +142,8 @@ footer {
}
}
.download-button {
.make-column(4);
.make-column-offset(4);
.make-sm-column(4);
//.make-column-offset(4);
}
.banner {
@ -308,15 +308,16 @@ h2 {
}
.icon-wrap {
.make-sm-column(3);
float: left;
width: 50px;
height: 120px;
font-size: 20px;
//width: 50px;
//height: 120px;
font-size: 30px;
.icon-name {
font-size: 10px;
}
.icon {
.icon, .wi {
display: inline-block;
font-family: 'weathericons';
font-style: normal;
@ -324,6 +325,11 @@ h2 {
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
float: left;
margin-right: 15px;
margin-bottom: 15px;
}
.icon_unicode {
font-size: 10px;
}
}

View File

@ -41,15 +41,6 @@
.wi-time-1:before {
content: ""; }
.wi-time-10:before {
content: ""; }
.wi-time-11:before {
content: ""; }
.wi-time-12:before {
content: ""; }
.wi-time-2:before {
content: ""; }
@ -74,48 +65,18 @@
.wi-time-9:before {
content: ""; }
.wi-moon-full:before {
content: ""; }
.wi-time-10:before {
content: ""; }
.wi-time-11:before {
content: ""; }
.wi-time-12:before {
content: ""; }
.wi-moon-new:before {
content: ""; }
.wi-moon-waning-crescent-1:before {
content: ""; }
.wi-moon-waning-crescent-2:before {
content: ""; }
.wi-moon-waning-crescent-3:before {
content: ""; }
.wi-moon-waning-crescent-4:before {
content: ""; }
.wi-moon-waning-crescent-5:before {
content: ""; }
.wi-moon-waning-crescent-6:before {
content: ""; }
.wi-moon-waning-gibbous-1:before {
content: ""; }
.wi-moon-waning-gibbous-2:before {
content: ""; }
.wi-moon-waning-gibbous-3:before {
content: ""; }
.wi-moon-waning-gibbous-4:before {
content: ""; }
.wi-moon-waning-gibbous-5:before {
content: ""; }
.wi-moon-waning-gibbous-6:before {
content: ""; }
.wi-moon-waxing-cresent-1:before {
content: ""; }
@ -152,30 +113,69 @@
.wi-moon-waxing-gibbous-6:before {
content: ""; }
.wi-moon-full:before {
content: ""; }
.wi-moon-waning-gibbous-1:before {
content: ""; }
.wi-moon-waning-gibbous-2:before {
content: ""; }
.wi-moon-waning-gibbous-3:before {
content: ""; }
.wi-moon-waning-gibbous-4:before {
content: ""; }
.wi-moon-waning-gibbous-5:before {
content: ""; }
.wi-moon-waning-gibbous-6:before {
content: ""; }
.wi-moon-waning-crescent-1:before {
content: ""; }
.wi-moon-waning-crescent-2:before {
content: ""; }
.wi-moon-waning-crescent-3:before {
content: ""; }
.wi-moon-waning-crescent-4:before {
content: ""; }
.wi-moon-waning-crescent-5:before {
content: ""; }
.wi-moon-waning-crescent-6:before {
content: ""; }
.wi-direction-up:before {
content: ""; }
.wi-direction-up-right:before {
content: ""; }
.wi-direction-right:before {
content: ""; }
.wi-direction-down-right:before {
content: ""; }
.wi-direction-down:before {
content: ""; }
.wi-direction-down-left:before {
content: ""; }
.wi-direction-down-right:before {
content: ""; }
.wi-direction-left:before {
content: ""; }
.wi-direction-right:before {
content: ""; }
.wi-direction-up:before {
content: ""; }
.wi-direction-up-left:before {
content: ""; }
.wi-direction-up-right:before {
content: ""; }
.wi-wind-default:before {
content: ""; }

View File

@ -41,15 +41,6 @@
.wi-time-1:before {
content: ""; }
.wi-time-10:before {
content: ""; }
.wi-time-11:before {
content: ""; }
.wi-time-12:before {
content: ""; }
.wi-time-2:before {
content: ""; }
@ -74,48 +65,18 @@
.wi-time-9:before {
content: ""; }
.wi-moon-full:before {
content: ""; }
.wi-time-10:before {
content: ""; }
.wi-time-11:before {
content: ""; }
.wi-time-12:before {
content: ""; }
.wi-moon-new:before {
content: ""; }
.wi-moon-waning-crescent-1:before {
content: ""; }
.wi-moon-waning-crescent-2:before {
content: ""; }
.wi-moon-waning-crescent-3:before {
content: ""; }
.wi-moon-waning-crescent-4:before {
content: ""; }
.wi-moon-waning-crescent-5:before {
content: ""; }
.wi-moon-waning-crescent-6:before {
content: ""; }
.wi-moon-waning-gibbous-1:before {
content: ""; }
.wi-moon-waning-gibbous-2:before {
content: ""; }
.wi-moon-waning-gibbous-3:before {
content: ""; }
.wi-moon-waning-gibbous-4:before {
content: ""; }
.wi-moon-waning-gibbous-5:before {
content: ""; }
.wi-moon-waning-gibbous-6:before {
content: ""; }
.wi-moon-waxing-cresent-1:before {
content: ""; }
@ -152,30 +113,69 @@
.wi-moon-waxing-gibbous-6:before {
content: ""; }
.wi-moon-full:before {
content: ""; }
.wi-moon-waning-gibbous-1:before {
content: ""; }
.wi-moon-waning-gibbous-2:before {
content: ""; }
.wi-moon-waning-gibbous-3:before {
content: ""; }
.wi-moon-waning-gibbous-4:before {
content: ""; }
.wi-moon-waning-gibbous-5:before {
content: ""; }
.wi-moon-waning-gibbous-6:before {
content: ""; }
.wi-moon-waning-crescent-1:before {
content: ""; }
.wi-moon-waning-crescent-2:before {
content: ""; }
.wi-moon-waning-crescent-3:before {
content: ""; }
.wi-moon-waning-crescent-4:before {
content: ""; }
.wi-moon-waning-crescent-5:before {
content: ""; }
.wi-moon-waning-crescent-6:before {
content: ""; }
.wi-direction-up:before {
content: ""; }
.wi-direction-up-right:before {
content: ""; }
.wi-direction-right:before {
content: ""; }
.wi-direction-down-right:before {
content: ""; }
.wi-direction-down:before {
content: ""; }
.wi-direction-down-left:before {
content: ""; }
.wi-direction-down-right:before {
content: ""; }
.wi-direction-left:before {
content: ""; }
.wi-direction-right:before {
content: ""; }
.wi-direction-up:before {
content: ""; }
.wi-direction-up-left:before {
content: ""; }
.wi-direction-up-right:before {
content: ""; }
.wi-wind-default:before {
content: ""; }

View File

@ -80,15 +80,6 @@
.wi-time-1:before {
content: "\f08a";
}
.wi-time-10:before {
content: "\f093";
}
.wi-time-11:before {
content: "\f094";
}
.wi-time-12:before {
content: "\f089";
}
.wi-time-2:before {
content: "\f08b";
}
@ -113,48 +104,18 @@
.wi-time-9:before {
content: "\f092";
}
.wi-moon-full:before {
content: "\f0a3";
.wi-time-10:before {
content: "\f093";
}
.wi-time-11:before {
content: "\f094";
}
.wi-time-12:before {
content: "\f089";
}
.wi-moon-new:before {
content: "\f095";
}
.wi-moon-waning-crescent-1:before {
content: "\f0ab";
}
.wi-moon-waning-crescent-2:before {
content: "\f0ac";
}
.wi-moon-waning-crescent-3:before {
content: "\f0ad";
}
.wi-moon-waning-crescent-4:before {
content: "\f0ae";
}
.wi-moon-waning-crescent-5:before {
content: "\f0af";
}
.wi-moon-waning-crescent-6:before {
content: "\f0b0";
}
.wi-moon-waning-gibbous-1:before {
content: "\f0a4";
}
.wi-moon-waning-gibbous-2:before {
content: "\f0a5";
}
.wi-moon-waning-gibbous-3:before {
content: "\f0a6";
}
.wi-moon-waning-gibbous-4:before {
content: "\f0a7";
}
.wi-moon-waning-gibbous-5:before {
content: "\f0a8";
}
.wi-moon-waning-gibbous-6:before {
content: "\f0a9";
}
.wi-moon-waxing-cresent-1:before {
content: "\f096";
}
@ -191,30 +152,69 @@
.wi-moon-waxing-gibbous-6:before {
content: "\f0a2";
}
.wi-moon-full:before {
content: "\f0a3";
}
.wi-moon-waning-gibbous-1:before {
content: "\f0a4";
}
.wi-moon-waning-gibbous-2:before {
content: "\f0a5";
}
.wi-moon-waning-gibbous-3:before {
content: "\f0a6";
}
.wi-moon-waning-gibbous-4:before {
content: "\f0a7";
}
.wi-moon-waning-gibbous-5:before {
content: "\f0a8";
}
.wi-moon-waning-gibbous-6:before {
content: "\f0a9";
}
.wi-moon-waning-crescent-1:before {
content: "\f0ab";
}
.wi-moon-waning-crescent-2:before {
content: "\f0ac";
}
.wi-moon-waning-crescent-3:before {
content: "\f0ad";
}
.wi-moon-waning-crescent-4:before {
content: "\f0ae";
}
.wi-moon-waning-crescent-5:before {
content: "\f0af";
}
.wi-moon-waning-crescent-6:before {
content: "\f0b0";
}
.wi-direction-up:before {
content: "\f058";
}
.wi-direction-up-right:before {
content: "\f057";
}
.wi-direction-right:before {
content: "\f04d";
}
.wi-direction-down-right:before {
content: "\f088";
}
.wi-direction-down:before {
content: "\f044";
}
.wi-direction-down-left:before {
content: "\f043";
}
.wi-direction-down-right:before {
content: "\f088";
}
.wi-direction-left:before {
content: "\f048";
}
.wi-direction-right:before {
content: "\f04d";
}
.wi-direction-up:before {
content: "\f058";
}
.wi-direction-up-left:before {
content: "\f087";
}
.wi-direction-up-right:before {
content: "\f057";
}
.wi-wind-default:before {
content: "\f0b1";
}

View File

@ -1,8 +1,8 @@
.wi-direction-up:before {content: @direction-up;}
.wi-direction-up-right:before {content: @direction-up-right;}
.wi-direction-right:before {content: @direction-right;}
.wi-direction-down-right:before {content: @direction-down-right;}
.wi-direction-down:before {content: @direction-down;}
.wi-direction-down-left:before {content: @direction-down-left;}
.wi-direction-down-right:before {content: @direction-down-right;}
.wi-direction-left:before {content: @direction-left;}
.wi-direction-right:before {content: @direction-right;}
.wi-direction-up:before {content: @direction-up;}
.wi-direction-up-left:before {content: @direction-up-left;}
.wi-direction-up-right:before {content: @direction-up-right;}
.wi-direction-up-left:before {content: @direction-up-left;}

View File

@ -1,17 +1,4 @@
.wi-moon-full:before {content: @moon-full;}
.wi-moon-new:before {content: @moon-new;}
.wi-moon-waning-crescent-1:before {content: @moon-waning-crescent-1;}
.wi-moon-waning-crescent-2:before {content: @moon-waning-crescent-2;}
.wi-moon-waning-crescent-3:before {content: @moon-waning-crescent-3;}
.wi-moon-waning-crescent-4:before {content: @moon-waning-crescent-4;}
.wi-moon-waning-crescent-5:before {content: @moon-waning-crescent-5;}
.wi-moon-waning-crescent-6:before {content: @moon-waning-crescent-6;}
.wi-moon-waning-gibbous-1:before {content: @moon-waning-gibbous-1;}
.wi-moon-waning-gibbous-2:before {content: @moon-waning-gibbous-2;}
.wi-moon-waning-gibbous-3:before {content: @moon-waning-gibbous-3;}
.wi-moon-waning-gibbous-4:before {content: @moon-waning-gibbous-4;}
.wi-moon-waning-gibbous-5:before {content: @moon-waning-gibbous-5;}
.wi-moon-waning-gibbous-6:before {content: @moon-waning-gibbous-6;}
.wi-moon-waxing-cresent-1:before {content: @moon-waxing-cresent-1;}
.wi-moon-waxing-cresent-2:before {content: @moon-waxing-cresent-2;}
.wi-moon-waxing-cresent-3:before {content: @moon-waxing-cresent-3;}
@ -23,4 +10,17 @@
.wi-moon-waxing-gibbous-3:before {content: @moon-waxing-gibbous-3;}
.wi-moon-waxing-gibbous-4:before {content: @moon-waxing-gibbous-4;}
.wi-moon-waxing-gibbous-5:before {content: @moon-waxing-gibbous-5;}
.wi-moon-waxing-gibbous-6:before {content: @moon-waxing-gibbous-6;}
.wi-moon-waxing-gibbous-6:before {content: @moon-waxing-gibbous-6;}
.wi-moon-full:before {content: @moon-full;}
.wi-moon-waning-gibbous-1:before {content: @moon-waning-gibbous-1;}
.wi-moon-waning-gibbous-2:before {content: @moon-waning-gibbous-2;}
.wi-moon-waning-gibbous-3:before {content: @moon-waning-gibbous-3;}
.wi-moon-waning-gibbous-4:before {content: @moon-waning-gibbous-4;}
.wi-moon-waning-gibbous-5:before {content: @moon-waning-gibbous-5;}
.wi-moon-waning-gibbous-6:before {content: @moon-waning-gibbous-6;}
.wi-moon-waning-crescent-1:before {content: @moon-waning-crescent-1;}
.wi-moon-waning-crescent-2:before {content: @moon-waning-crescent-2;}
.wi-moon-waning-crescent-3:before {content: @moon-waning-crescent-3;}
.wi-moon-waning-crescent-4:before {content: @moon-waning-crescent-4;}
.wi-moon-waning-crescent-5:before {content: @moon-waning-crescent-5;}
.wi-moon-waning-crescent-6:before {content: @moon-waning-crescent-6;}

View File

@ -1,7 +1,4 @@
.wi-time-1:before {content: @time-1;}
.wi-time-10:before {content: @time-10;}
.wi-time-11:before {content: @time-11;}
.wi-time-12:before {content: @time-12;}
.wi-time-2:before {content: @time-2;}
.wi-time-3:before {content: @time-3;}
.wi-time-4:before {content: @time-4;}
@ -9,4 +6,7 @@
.wi-time-6:before {content: @time-6;}
.wi-time-7:before {content: @time-7;}
.wi-time-8:before {content: @time-8;}
.wi-time-9:before {content: @time-9;}
.wi-time-9:before {content: @time-9;}
.wi-time-10:before {content: @time-10;}
.wi-time-11:before {content: @time-11;}
.wi-time-12:before {content: @time-12;}

View File

@ -1,8 +1,8 @@
@direction-up: "\f058";
@direction-up-right: "\f057";
@direction-right: "\f04d";
@direction-down-right: "\f088";
@direction-down: "\f044";
@direction-down-left: "\f043";
@direction-down-right: "\f088";
@direction-left: "\f048";
@direction-right: "\f04d";
@direction-up: "\f058";
@direction-up-left: "\f087";
@direction-up-right: "\f057";
@direction-up-left: "\f087";

View File

@ -1,17 +1,4 @@
@moon-full: "\f0a3";
@moon-new: "\f095";
@moon-waning-crescent-1: "\f0ab";
@moon-waning-crescent-2: "\f0ac";
@moon-waning-crescent-3: "\f0ad";
@moon-waning-crescent-4: "\f0ae";
@moon-waning-crescent-5: "\f0af";
@moon-waning-crescent-6: "\f0b0";
@moon-waning-gibbous-1: "\f0a4";
@moon-waning-gibbous-2: "\f0a5";
@moon-waning-gibbous-3: "\f0a6";
@moon-waning-gibbous-4: "\f0a7";
@moon-waning-gibbous-5: "\f0a8";
@moon-waning-gibbous-6: "\f0a9";
@moon-waxing-cresent-1: "\f096";
@moon-waxing-cresent-2: "\f097";
@moon-waxing-cresent-3: "\f098";
@ -23,4 +10,17 @@
@moon-waxing-gibbous-3: "\f09f";
@moon-waxing-gibbous-4: "\f0a0";
@moon-waxing-gibbous-5: "\f0a1";
@moon-waxing-gibbous-6: "\f0a2";
@moon-waxing-gibbous-6: "\f0a2";
@moon-full: "\f0a3";
@moon-waning-gibbous-1: "\f0a4";
@moon-waning-gibbous-2: "\f0a5";
@moon-waning-gibbous-3: "\f0a6";
@moon-waning-gibbous-4: "\f0a7";
@moon-waning-gibbous-5: "\f0a8";
@moon-waning-gibbous-6: "\f0a9";
@moon-waning-crescent-1: "\f0ab";
@moon-waning-crescent-2: "\f0ac";
@moon-waning-crescent-3: "\f0ad";
@moon-waning-crescent-4: "\f0ae";
@moon-waning-crescent-5: "\f0af";
@moon-waning-crescent-6: "\f0b0";

View File

@ -1,7 +1,4 @@
@time-1: "\f08a";
@time-10: "\f093";
@time-11: "\f094";
@time-12: "\f089";
@time-2: "\f08b";
@time-3: "\f08c";
@time-4: "\f08d";
@ -9,4 +6,7 @@
@time-6: "\f08f";
@time-7: "\f090";
@time-8: "\f091";
@time-9: "\f092";
@time-9: "\f092";
@time-10: "\f093";
@time-11: "\f094";
@time-12: "\f089";

View File

@ -1,8 +1,8 @@
.wi-direction-up:before {content: $direction-up;}
.wi-direction-up-right:before {content: $direction-up-right;}
.wi-direction-right:before {content: $direction-right;}
.wi-direction-down-right:before {content: $direction-down-right;}
.wi-direction-down:before {content: $direction-down;}
.wi-direction-down-left:before {content: $direction-down-left;}
.wi-direction-down-right:before {content: $direction-down-right;}
.wi-direction-left:before {content: $direction-left;}
.wi-direction-right:before {content: $direction-right;}
.wi-direction-up:before {content: $direction-up;}
.wi-direction-up-left:before {content: $direction-up-left;}
.wi-direction-up-right:before {content: $direction-up-right;}
.wi-direction-up-left:before {content: $direction-up-left;}

View File

@ -1,17 +1,4 @@
.wi-moon-full:before {content: $moon-full;}
.wi-moon-new:before {content: $moon-new;}
.wi-moon-waning-crescent-1:before {content: $moon-waning-crescent-1;}
.wi-moon-waning-crescent-2:before {content: $moon-waning-crescent-2;}
.wi-moon-waning-crescent-3:before {content: $moon-waning-crescent-3;}
.wi-moon-waning-crescent-4:before {content: $moon-waning-crescent-4;}
.wi-moon-waning-crescent-5:before {content: $moon-waning-crescent-5;}
.wi-moon-waning-crescent-6:before {content: $moon-waning-crescent-6;}
.wi-moon-waning-gibbous-1:before {content: $moon-waning-gibbous-1;}
.wi-moon-waning-gibbous-2:before {content: $moon-waning-gibbous-2;}
.wi-moon-waning-gibbous-3:before {content: $moon-waning-gibbous-3;}
.wi-moon-waning-gibbous-4:before {content: $moon-waning-gibbous-4;}
.wi-moon-waning-gibbous-5:before {content: $moon-waning-gibbous-5;}
.wi-moon-waning-gibbous-6:before {content: $moon-waning-gibbous-6;}
.wi-moon-waxing-cresent-1:before {content: $moon-waxing-cresent-1;}
.wi-moon-waxing-cresent-2:before {content: $moon-waxing-cresent-2;}
.wi-moon-waxing-cresent-3:before {content: $moon-waxing-cresent-3;}
@ -23,4 +10,17 @@
.wi-moon-waxing-gibbous-3:before {content: $moon-waxing-gibbous-3;}
.wi-moon-waxing-gibbous-4:before {content: $moon-waxing-gibbous-4;}
.wi-moon-waxing-gibbous-5:before {content: $moon-waxing-gibbous-5;}
.wi-moon-waxing-gibbous-6:before {content: $moon-waxing-gibbous-6;}
.wi-moon-waxing-gibbous-6:before {content: $moon-waxing-gibbous-6;}
.wi-moon-full:before {content: $moon-full;}
.wi-moon-waning-gibbous-1:before {content: $moon-waning-gibbous-1;}
.wi-moon-waning-gibbous-2:before {content: $moon-waning-gibbous-2;}
.wi-moon-waning-gibbous-3:before {content: $moon-waning-gibbous-3;}
.wi-moon-waning-gibbous-4:before {content: $moon-waning-gibbous-4;}
.wi-moon-waning-gibbous-5:before {content: $moon-waning-gibbous-5;}
.wi-moon-waning-gibbous-6:before {content: $moon-waning-gibbous-6;}
.wi-moon-waning-crescent-1:before {content: $moon-waning-crescent-1;}
.wi-moon-waning-crescent-2:before {content: $moon-waning-crescent-2;}
.wi-moon-waning-crescent-3:before {content: $moon-waning-crescent-3;}
.wi-moon-waning-crescent-4:before {content: $moon-waning-crescent-4;}
.wi-moon-waning-crescent-5:before {content: $moon-waning-crescent-5;}
.wi-moon-waning-crescent-6:before {content: $moon-waning-crescent-6;}

View File

@ -1,7 +1,4 @@
.wi-time-1:before {content: $time-1;}
.wi-time-10:before {content: $time-10;}
.wi-time-11:before {content: $time-11;}
.wi-time-12:before {content: $time-12;}
.wi-time-2:before {content: $time-2;}
.wi-time-3:before {content: $time-3;}
.wi-time-4:before {content: $time-4;}
@ -9,4 +6,7 @@
.wi-time-6:before {content: $time-6;}
.wi-time-7:before {content: $time-7;}
.wi-time-8:before {content: $time-8;}
.wi-time-9:before {content: $time-9;}
.wi-time-9:before {content: $time-9;}
.wi-time-10:before {content: $time-10;}
.wi-time-11:before {content: $time-11;}
.wi-time-12:before {content: $time-12;}

View File

@ -1,8 +1,8 @@
$direction-up: "\f058";
$direction-up-right: "\f057";
$direction-right: "\f04d";
$direction-down-right: "\f088";
$direction-down: "\f044";
$direction-down-left: "\f043";
$direction-down-right: "\f088";
$direction-left: "\f048";
$direction-right: "\f04d";
$direction-up: "\f058";
$direction-up-left: "\f087";
$direction-up-right: "\f057"
$direction-up-left: "\f087"

View File

@ -1,17 +1,4 @@
$moon-full: "\f0a3";
$moon-new: "\f095";
$moon-waning-crescent-1: "\f0ab";
$moon-waning-crescent-2: "\f0ac";
$moon-waning-crescent-3: "\f0ad";
$moon-waning-crescent-4: "\f0ae";
$moon-waning-crescent-5: "\f0af";
$moon-waning-crescent-6: "\f0b0";
$moon-waning-gibbous-1: "\f0a4";
$moon-waning-gibbous-2: "\f0a5";
$moon-waning-gibbous-3: "\f0a6";
$moon-waning-gibbous-4: "\f0a7";
$moon-waning-gibbous-5: "\f0a8";
$moon-waning-gibbous-6: "\f0a9";
$moon-waxing-cresent-1: "\f096";
$moon-waxing-cresent-2: "\f097";
$moon-waxing-cresent-3: "\f098";
@ -23,4 +10,17 @@ $moon-waxing-gibbous-2: "\f09e";
$moon-waxing-gibbous-3: "\f09f";
$moon-waxing-gibbous-4: "\f0a0";
$moon-waxing-gibbous-5: "\f0a1";
$moon-waxing-gibbous-6: "\f0a2"
$moon-waxing-gibbous-6: "\f0a2";
$moon-full: "\f0a3";
$moon-waning-gibbous-1: "\f0a4";
$moon-waning-gibbous-2: "\f0a5";
$moon-waning-gibbous-3: "\f0a6";
$moon-waning-gibbous-4: "\f0a7";
$moon-waning-gibbous-5: "\f0a8";
$moon-waning-gibbous-6: "\f0a9";
$moon-waning-crescent-1: "\f0ab";
$moon-waning-crescent-2: "\f0ac";
$moon-waning-crescent-3: "\f0ad";
$moon-waning-crescent-4: "\f0ae";
$moon-waning-crescent-5: "\f0af";
$moon-waning-crescent-6: "\f0b0"

View File

@ -1,7 +1,4 @@
$time-1: "\f08a";
$time-10: "\f093";
$time-11: "\f094";
$time-12: "\f089";
$time-2: "\f08b";
$time-3: "\f08c";
$time-4: "\f08d";
@ -9,4 +6,7 @@ $time-5: "\f08e";
$time-6: "\f08f";
$time-7: "\f090";
$time-8: "\f091";
$time-9: "\f092"
$time-9: "\f092";
$time-10: "\f093";
$time-11: "\f094";
$time-12: "\f089"