_tabs.scss 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741
  1. // BASE
  2. // -----------------------------------------------------------------------------
  3. /* tabs */
  4. .tabs {
  5. -moz-border-radius: 4px;
  6. -webkit-border-radius: 4px;
  7. border-radius: 4px;
  8. margin-bottom: 35px;
  9. }
  10. // CUSTOMIZATION
  11. // -----------------------------------------------------------------------------
  12. /* navigation */
  13. .nav-tabs {
  14. margin: 0;
  15. font-size: 0;
  16. li {
  17. display: inline-block;
  18. float: none;
  19. &:last-child {
  20. a {
  21. margin-right: 0;
  22. }
  23. }
  24. a {
  25. border-radius: $border-radius $border-radius 0 0;
  26. @include font-size($body-font-size);
  27. margin-right: 1px;
  28. &,
  29. &:hover {
  30. background: $tabs-nav-item-background;
  31. border: {
  32. bottom: none;
  33. left: 1px solid $tabs-nav-item-border-color;
  34. right: 1px solid $tabs-nav-item-border-color;
  35. top: $tabs-nav-item-border-top solid $tabs-nav-item-border-top-color;
  36. }
  37. color: $tabs-nav-default-color;
  38. }
  39. &:hover {
  40. border-bottom-color: transparent;
  41. border-top: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  42. box-shadow: none;
  43. }
  44. &:active,
  45. &:focus {
  46. border-bottom: 0;
  47. }
  48. }
  49. &.active {
  50. a,
  51. a:hover,
  52. a:focus {
  53. background: $tabs-nav-item-background-active-hover;
  54. border-left-color: $tabs-nav-item-border-color;
  55. border-right-color: $tabs-nav-item-border-color;
  56. border-top: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  57. color: $tabs-nav-default-color;
  58. }
  59. }
  60. }
  61. }
  62. /* content */
  63. .tab-content {
  64. border-radius: 0 0 $tabs-content-border-radius $tabs-content-border-radius;
  65. box-shadow: $tabs-content-box-shadow;
  66. background-color: $tabs-content-background;
  67. border: 1px solid $tabs-content-border-color;
  68. border-top: 0;
  69. padding: $tabs-content-padding;
  70. }
  71. /* content - footer inside */
  72. .tab-content .panel-footer {
  73. margin: -$tabs-content-padding;
  74. margin-top: $tabs-content-padding;
  75. }
  76. // JUSTIFIED
  77. // -----------------------------------------------------------------------------
  78. /* Justified */
  79. .nav-tabs.nav-justified {
  80. margin-bottom: -1px;
  81. border-left: 1px solid transparent;
  82. border-right: 1px solid transparent;
  83. li {
  84. margin-bottom: 0;
  85. &:first-child {
  86. a,
  87. a:hover {
  88. border-radius: $border-radius 0 0 0;
  89. border-left: none;
  90. }
  91. }
  92. &:last-child {
  93. a,
  94. a:hover {
  95. border-radius: 0 $border-radius 0 0;
  96. border-right: none;
  97. }
  98. }
  99. a {
  100. border-left: none;
  101. border-right: none;
  102. border-bottom: 1px solid #DDD;
  103. border-radius: 0;
  104. margin-right: 0;
  105. &:hover,
  106. &:focus {
  107. border-bottom: 1px solid #DDD;
  108. border-left: none;
  109. border-right: none;
  110. }
  111. }
  112. &.active {
  113. a,
  114. a:hover,
  115. a:focus {
  116. background: $tabs-nav-item-background-active-hover;
  117. border-left-color: $tabs-nav-item-border-color;
  118. border-right-color: $tabs-nav-item-border-color;
  119. border-top: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  120. color: $tabs-nav-default-color;
  121. }
  122. }
  123. &.active {
  124. a {
  125. &,
  126. &:hover,
  127. &:focus {
  128. border-top-color: $tabs-nav-default-color;
  129. border-top-width: $tabs-nav-item-border-top;
  130. border-left: none;
  131. border-right: none;
  132. }
  133. border-bottom: 1px solid #FFF;
  134. &:hover {
  135. border-bottom: 1px solid #FFF;
  136. }
  137. }
  138. }
  139. }
  140. }
  141. // BOTTOM
  142. // -----------------------------------------------------------------------------
  143. /* Bottom Tabs */
  144. .tabs.tabs-bottom {
  145. .tab-content {
  146. border-radius: $tabs-content-border-radius $tabs-content-border-radius 0 0;
  147. border-bottom: 0;
  148. border-top: 1px solid $tabs-content-border-color;
  149. }
  150. .nav-tabs {
  151. border-bottom: none;
  152. border-top: 1px solid #dddddd;
  153. li {
  154. margin-bottom: 0;
  155. margin-top: -1px;
  156. &:last-child {
  157. a {
  158. margin-right: 0;
  159. }
  160. }
  161. a {
  162. border-radius: 0 0 $border-radius $border-radius;
  163. @include font-size($body-font-size);
  164. margin-right: 1px;
  165. &,
  166. &:hover,
  167. &:focus,
  168. &:active {
  169. border: {
  170. bottom: $tabs-nav-item-border-top solid $tabs-nav-item-border-top-color;
  171. top: 1px solid $tabs-nav-item-border-top-color;
  172. }
  173. }
  174. &:hover,
  175. &:focus,
  176. &:active {
  177. border-bottom: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  178. border-top: 1px solid $tabs-nav-item-border-top-color;
  179. }
  180. }
  181. &.active {
  182. a,
  183. a:hover,
  184. a:focus {
  185. border-bottom: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  186. border-top-color: transparent;
  187. }
  188. }
  189. }
  190. }
  191. }
  192. /* Bottom Tabs with Justified Nav */
  193. .tabs.tabs-bottom {
  194. .nav.nav-tabs.nav-justified {
  195. border-top: none;
  196. li {
  197. a {
  198. margin-right: 0;
  199. border-top-color: $tabs-nav-item-border-top-color;
  200. }
  201. &:first-child {
  202. a {
  203. border-radius: 0 0 0 $border-radius;
  204. }
  205. }
  206. &:last-child {
  207. a {
  208. margin-right: 0;
  209. border-radius: 0 0 $border-radius 0;
  210. }
  211. }
  212. &.active {
  213. a,
  214. a:hover,
  215. a:focus {
  216. border-top-color: transparent;
  217. }
  218. }
  219. }
  220. }
  221. }
  222. // VERTICAL
  223. // -----------------------------------------------------------------------------
  224. /* Vertical */
  225. .tabs-vertical {
  226. display: table;
  227. width: 100%;
  228. .tab-content {
  229. display: table-cell;
  230. vertical-align: top;
  231. }
  232. .nav-tabs {
  233. border-bottom: none;
  234. display: table-cell;
  235. height: 100%;
  236. float: none;
  237. padding: 0;
  238. vertical-align: top;
  239. & > li {
  240. display: block;
  241. a {
  242. border-radius: 0;
  243. display:block;
  244. padding-top: 10px;
  245. &,
  246. &:hover,
  247. &:focus {
  248. border-bottom: none;
  249. border-top: none
  250. }
  251. }
  252. &.active {
  253. a,
  254. a:hover,
  255. &:focus {
  256. border-top: none;
  257. }
  258. }
  259. }
  260. }
  261. }
  262. /* Vertical - Left Side */
  263. .tabs-left {
  264. .tab-content {
  265. border-radius: 0 $border-radius $border-radius $border-radius;
  266. border-left: none;
  267. }
  268. .nav-tabs {
  269. & > li {
  270. margin-right: -1px;
  271. &:first-child {
  272. a {
  273. border-radius: $border-radius 0 0 0;
  274. }
  275. }
  276. &:last-child {
  277. a {
  278. border-radius: 0 0 0 $border-radius;
  279. }
  280. }
  281. a {
  282. border: {
  283. right: 1px solid $tabs-nav-item-border-color;
  284. left: $tabs-nav-item-border-top solid $tabs-nav-item-border-top-color;
  285. }
  286. margin-right: 1px;
  287. margin-left: -$tabs-nav-item-border-top;
  288. &:hover {
  289. border-left-color: $tabs-nav-default-color;
  290. }
  291. }
  292. &.active {
  293. a,
  294. a:hover,
  295. a:focus {
  296. border-left: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  297. border-right-color: #FFF;
  298. }
  299. }
  300. }
  301. }
  302. }
  303. /* Vertical - Right Side */
  304. .tabs-right {
  305. .tab-content {
  306. border-radius: $border-radius 0 $border-radius $border-radius;
  307. border-right: none;
  308. }
  309. .nav-tabs {
  310. & > li {
  311. margin-left: -1px;
  312. &:first-child {
  313. a {
  314. border-radius: 0 $border-radius 0 0;
  315. }
  316. }
  317. &:last-child {
  318. a {
  319. border-radius: 0 0 $border-radius 0;
  320. }
  321. }
  322. a {
  323. border: {
  324. right: $tabs-nav-item-border-top solid $tabs-nav-item-border-top-color;
  325. left: 1px solid $tabs-nav-item-border-color;
  326. }
  327. margin-right: 1px;
  328. margin-left: 1px;
  329. &:hover {
  330. border-right-color: $tabs-nav-default-color;
  331. }
  332. }
  333. &.active {
  334. a,
  335. a:hover,
  336. a:focus {
  337. border-right: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  338. border-left: 1px solid #FFF;
  339. }
  340. }
  341. }
  342. }
  343. }
  344. // DARK
  345. // -----------------------------------------------------------------------------
  346. /* dark */
  347. html.dark {
  348. .tabs {
  349. .nav-tabs li {
  350. a,
  351. a:focus {
  352. border-top-color: $dark-color-3;
  353. border-left-color: $dark-color-3;
  354. border-right-color: $dark-color-3;
  355. background: $dark-color-3;
  356. }
  357. a:hover {
  358. border-top-color: $dark-default-text;
  359. }
  360. &.active {
  361. a,
  362. a:hover,
  363. a:focus {
  364. border-top-color: $dark-default-text;
  365. }
  366. }
  367. }
  368. .nav-tabs.nav-justified {
  369. border-left-width: 0;
  370. border-right-width: 0;
  371. border-left-color: transparent;
  372. border-right-color: transparent;
  373. }
  374. .nav-tabs.nav-justified li a,
  375. .nav-tabs.nav-justified li a:hover,
  376. .nav-tabs.nav-justified li a:focus {
  377. border-bottom-color: $dark-color-3;
  378. }
  379. &.tabs-left .nav-tabs > li a,
  380. &.tabs-right .nav-tabs > li a {
  381. background: $dark-color-3;
  382. border-left-color: $dark-color-3;
  383. border-right-color: $dark-color-3;
  384. }
  385. &.tabs-left .nav-tabs > li:last-child a,
  386. &.tabs-right .nav-tabs > li:last-child a {
  387. border-bottom-color: $dark-color-3;
  388. }
  389. &.tabs-left {
  390. .nav-tabs > li {
  391. &.active {
  392. a,
  393. a:hover,
  394. a:focus {
  395. border-left: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  396. }
  397. }
  398. a:hover {
  399. border-left: $tabs-nav-item-border-top solid $tabs-nav-default-color;
  400. }
  401. }
  402. }
  403. .nav-tabs {
  404. border-color: $dark-color-3;
  405. }
  406. .nav-tabs li.active a,
  407. .nav-tabs li.active a:hover,
  408. .nav-tabs li.active a:focus,
  409. .nav-tabs.nav-justified li.active a,
  410. .nav-tabs.nav-justified li.active a:hover,
  411. .nav-tabs.nav-justified li.active a:focus {
  412. background: $dark-color-4;
  413. border-left-color: $dark-color-4;
  414. border-right-color: $dark-color-4;
  415. }
  416. .nav-tabs.nav-justified li.active a {
  417. border-bottom-color: $dark-color-4;
  418. }
  419. &.tabs-vertical {
  420. border-top-color: $dark-color-4;
  421. }
  422. &.tabs-bottom {
  423. .nav-tabs li {
  424. a,
  425. a:focus {
  426. border-bottom-color: $dark-color-3;
  427. border-top-color: $dark-color-4;
  428. }
  429. a:hover {
  430. border-bottom-color: $dark-default-text;
  431. border-top-color: $dark-color-4;
  432. }
  433. &.active {
  434. a,
  435. a:hover,
  436. a:focus {
  437. border-bottom-color: $dark-default-text;
  438. border-top-color: $dark-color-4;
  439. }
  440. }
  441. }
  442. }
  443. .tab-content {
  444. background: $dark-color-4;
  445. border-color: $dark-color-4;
  446. }
  447. }
  448. .tabs-primary {
  449. &.tabs-bottom {
  450. .nav-tabs {
  451. &,
  452. &.nav-justified {
  453. li {
  454. a,
  455. a:hover,
  456. a:focus {
  457. border-top-color: $dark-color-4 !important;
  458. }
  459. }
  460. }
  461. }
  462. }
  463. }
  464. .nav-tabs li.active a,
  465. .nav-tabs li.active a:hover,
  466. .nav-tabs li.active a:focus,
  467. .nav-tabs li a {
  468. color: $dark-default-text;
  469. }
  470. .tab-content {
  471. background: $dark-color-4;
  472. border-color: $dark-color-1;
  473. }
  474. }
  475. // STATES
  476. // -----------------------------------------------------------------------------
  477. /* states */
  478. @each $state in $states {
  479. html body,
  480. html.dark body {
  481. .tabs-#{nth($state,1)} {
  482. .nav-tabs {
  483. &,
  484. &.nav-justified {
  485. li {
  486. a {
  487. &,
  488. &:hover {
  489. color: #{nth($state,2)};
  490. }
  491. &:hover {
  492. border-top-color: #{nth($state,2)};
  493. }
  494. }
  495. &.active {
  496. a,
  497. a:hover,
  498. a:focus {
  499. border-top-color: #{nth($state,2)};
  500. color: #{nth($state,2)};
  501. }
  502. }
  503. }
  504. }
  505. }
  506. &.tabs-bottom {
  507. .nav-tabs {
  508. &,
  509. &.nav-justified {
  510. li {
  511. a {
  512. &:hover {
  513. border-bottom-color: #{nth($state,2)};
  514. }
  515. }
  516. &.active {
  517. a,
  518. a:hover,
  519. a:focus {
  520. border-bottom-color: #{nth($state,2)};
  521. }
  522. }
  523. }
  524. }
  525. }
  526. }
  527. &.tabs-vertical {
  528. &.tabs-left {
  529. li {
  530. a {
  531. &:hover {
  532. border-left-color: #{nth($state,2)};
  533. }
  534. }
  535. &.active {
  536. a,
  537. a:hover,
  538. a:focus {
  539. border-left-color: #{nth($state,2)};
  540. }
  541. }
  542. }
  543. }
  544. &.tabs-right {
  545. li {
  546. a {
  547. &:hover {
  548. border-right-color: #{nth($state,2)};
  549. }
  550. }
  551. &.active {
  552. a,
  553. a:hover,
  554. a:focus {
  555. border-right-color: #{nth($state,2)};
  556. }
  557. }
  558. }
  559. }
  560. }
  561. }
  562. }
  563. }
  564. // DARK
  565. // -----------------------------------------------------------------------------
  566. /* dark */
  567. html.dark body {
  568. .tabs-dark {
  569. .nav-tabs {
  570. &,
  571. &.nav-justified {
  572. li {
  573. a {
  574. &,
  575. &:hover {
  576. color: #FFF;
  577. }
  578. &:hover {
  579. border-top-color: #FFF;
  580. }
  581. }
  582. &.active {
  583. a,
  584. a:hover,
  585. a:focus {
  586. border-top-color: #FFF;
  587. color: #FFF;
  588. }
  589. }
  590. }
  591. }
  592. }
  593. &.tabs-bottom {
  594. .nav-tabs {
  595. &,
  596. &.nav-justified {
  597. li {
  598. a {
  599. &:hover {
  600. border-bottom-color: #FFF;
  601. }
  602. }
  603. &.active {
  604. a,
  605. a:hover,
  606. a:focus {
  607. border-bottom-color: #FFF;
  608. }
  609. }
  610. }
  611. }
  612. }
  613. }
  614. &.tabs-vertical {
  615. &.tabs-left {
  616. li {
  617. a {
  618. &:hover {
  619. border-left-color: #FFF;
  620. }
  621. }
  622. &.active {
  623. a,
  624. a:hover,
  625. a:focus {
  626. border-left-color: #FFF;
  627. }
  628. }
  629. }
  630. }
  631. &.tabs-right {
  632. li {
  633. a {
  634. &:hover {
  635. border-right-color: #FFF;
  636. }
  637. }
  638. &.active {
  639. a,
  640. a:hover,
  641. a:focus {
  642. border-right-color: #FFF;
  643. }
  644. }
  645. }
  646. }
  647. }
  648. }
  649. }