components.scss 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227
  1. // app-title.scss
  2. // Componant: Page Title
  3. .app-title {
  4. display: flex;
  5. align-items: center;
  6. justify-content: space-between;
  7. flex-direction: row;
  8. background-color: #FFF;
  9. margin: (-30px) -30px 30px;
  10. padding: 20px 30px;
  11. box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  12. @media print { display: none; }
  13. @media (max-width: 480px) {
  14. margin: (-15px) -15px 15px;
  15. padding: 20px;
  16. flex-direction: column;
  17. align-items: flex-start;
  18. }
  19. h1 {
  20. margin: 0;
  21. font-size: 24px;
  22. font-weight: 400;
  23. }
  24. p {
  25. margin-bottom: 0;
  26. font-style: normal;
  27. @media (max-width: 480px) { display: none; }
  28. }
  29. }
  30. .app-breadcrumb {
  31. margin-bottom: 0;
  32. text-align: right;
  33. font-weight: 500;
  34. font-size: 13px;
  35. text-transform: capitalize;
  36. padding: 0;
  37. text-align: left;
  38. padding: 0;
  39. background-color: transparent;
  40. @media (max-width: 480px) { margin-top: 10px; }
  41. }
  42. // button.scss
  43. // Componant: Dropdown
  44. // Updated styles for bootstrap dropdown
  45. //.btn {
  46. // //cursor: pointer;
  47. // //&:not([disabled]):not(.disabled):not(.btn-link):hover,
  48. // //&:not([disabled]):not(.disabled):not(.btn-link):focus {
  49. // // text-decoration: none;
  50. // // //transform: translate3d(0, -1px, 0);
  51. // // //box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4);
  52. // //}
  53. // //&[disabled] { cursor: not-allowed; }
  54. // //.icon,
  55. // //.fa {
  56. // // font-size: 14px;
  57. // // margin-right: 5px;
  58. // // vertical-align: middle;
  59. // //}
  60. //}
  61. // button-spinner.scss
  62. // Componant: Button Loader
  63. .btn-spinner {
  64. display: inline-block;
  65. z-index: 2000;
  66. width: 15px;
  67. height: 15px;
  68. position: relative;
  69. top: 2px;
  70. margin-right: 5px;
  71. border: solid 2px transparent;
  72. border-top-color: #fff;
  73. border-left-color: #fff;
  74. border-radius: 10px;
  75. animation: bSpinner 0.8s linear infinite;
  76. }
  77. @keyframes bSpinner {
  78. 0% { transform: rotate(0deg) }
  79. 100% { transform: rotate(360deg) }
  80. }
  81. // chat.scss
  82. // Componant: ChatBox
  83. .messanger {
  84. display: flex;
  85. flex-direction: column;
  86. .messages {
  87. flex: 1;
  88. margin: 10px 0;
  89. padding: 0 10px;
  90. max-height: 260px;
  91. overflow-y: auto;
  92. overflow-x: hidden;
  93. .message {
  94. display: flex;
  95. margin-bottom: 15px;
  96. align-items: flex-start;
  97. &.me {
  98. flex-direction: row-reverse;
  99. img {
  100. margin-right: 0;
  101. margin-left: 15px;
  102. }
  103. .info {
  104. background-color: $blue;
  105. color: $white;
  106. &:before {
  107. display: none;
  108. }
  109. &:after {
  110. position: absolute;
  111. right: -13px;
  112. top: 0;
  113. content: "";
  114. width: 0;
  115. height: 0;
  116. border-style: solid;
  117. border-width: 0 16px 16px 0;
  118. border-color: transparent $blue transparent transparent;
  119. transform: rotate(270deg);
  120. }
  121. }
  122. }
  123. img {
  124. border-radius: 50%;
  125. margin-right: 15px;
  126. }
  127. .info {
  128. margin: 0;
  129. background-color: #ddd;
  130. padding: 5px 10px;
  131. border-radius: 3px;
  132. position: relative;
  133. align-self: flex-start;
  134. &:before {
  135. position: absolute;
  136. left: -14px;
  137. top: 0;
  138. content: "";
  139. width: 0;
  140. height: 0;
  141. border-style: solid;
  142. border-width: 0 16px 16px 0;
  143. border-color: transparent #ddd transparent transparent;
  144. }
  145. }
  146. }
  147. }
  148. .sender {
  149. display: flex;
  150. input[type="text"] {
  151. flex: 1;
  152. border: 1px solid $blue;
  153. outline: none;
  154. padding: 5px 10px;
  155. }
  156. button { border-radius: 0; }
  157. }
  158. }
  159. // custom-radio-n-checkbox
  160. /* Custom Checkbox and Radio Buttons */
  161. .animated-checkbox {
  162. input[type="checkbox"] {
  163. display: none;
  164. + .label-text {
  165. cursor: pointer !important;
  166. user-select: none;
  167. &:before {
  168. content: "";
  169. font-family: "FontAwesome";
  170. speak: none;
  171. font-style: normal;
  172. font-weight: normal;
  173. font-variant: normal;
  174. text-transform: none;
  175. line-height: 1;
  176. font-size: 18px;
  177. -webkit-font-smoothing: antialiased;
  178. width: 1em;
  179. display: inline-block;
  180. margin-right: 2px;
  181. vertical-align: -2px;
  182. }
  183. }
  184. &:checked + .label-text:before {
  185. content: "";
  186. color: $blue;
  187. animation: tick 180ms ease-in;
  188. }
  189. &:disabled + .label-text {
  190. cursor: not-allowed !important;
  191. &:before {
  192. content: "";
  193. color: #ccc;
  194. }
  195. }
  196. }
  197. }
  198. .animated-radio-button {
  199. input[type="radio"] {
  200. display: none;
  201. + .label-text {
  202. cursor: pointer !important;
  203. user-select: none;
  204. &:before {
  205. content: "";
  206. font-family: "FontAwesome";
  207. speak: none;
  208. font-style: normal;
  209. font-weight: normal;
  210. font-variant: normal;
  211. text-transform: none;
  212. line-height: 1;
  213. font-size: 18px;
  214. -webkit-font-smoothing: antialiased;
  215. width: 1em;
  216. display: inline-block;
  217. margin-right: 2px;
  218. vertical-align: -2px;
  219. }
  220. }
  221. &:checked + .label-text:before {
  222. content: "";
  223. color: $blue;
  224. animation: tick 180ms ease-in;
  225. }
  226. &:disabled + .label-text {
  227. cursor: not-allowed !important;
  228. &:before {
  229. content: "";
  230. color: #ccc;
  231. }
  232. }
  233. }
  234. }
  235. // Bounce the checked checkbox and radio button
  236. @keyframes tick {
  237. 0% {
  238. transform: scale(0);
  239. }
  240. 90% {
  241. transform: scale(1.4);
  242. }
  243. 100% {
  244. transform: scale(1);
  245. }
  246. }
  247. // dropdown
  248. // Componant: Dropdown
  249. // Updated styles for bootstrap dropdown
  250. .dropdown-menu {
  251. border-radius: 0;
  252. box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  253. &.dropdown-menu-right {
  254. left: auto;
  255. right: 0;
  256. }
  257. }
  258. .dropdown-item {
  259. i{
  260. color: $blue;
  261. }
  262. &:focus, &:hover{
  263. color: $white;
  264. text-decoration: none;
  265. background-color: $blue;
  266. i{
  267. color: $white;
  268. }
  269. }
  270. .fa,
  271. .icon {
  272. margin-right: 5px;
  273. vertical-align: middle;
  274. }
  275. }
  276. // header
  277. /*----- Componant: Top Navigation Bar ----- */
  278. .app-header {
  279. position: fixed;
  280. left: 0;
  281. right: 0;
  282. top: 0;
  283. width: 100%;
  284. display: flex;
  285. background-color: $blue;
  286. z-index: 1030;
  287. padding-right: 15px;
  288. @media(min-width: 768px) { padding-right: 30px }
  289. @media print { display: none; }
  290. }
  291. .app-header__logo {
  292. flex: 1 0 auto;
  293. color: #fff;
  294. text-align: center;
  295. font-family: 'Niconne';
  296. padding: 0 15px;
  297. font-size: 26px;
  298. font-weight: 400;
  299. line-height: 50px;
  300. @media(min-width: 768px) {
  301. flex: 0 0 auto;
  302. display: block;
  303. width: $sidebar-width;
  304. @if $sidebar-accent == dark {
  305. background-color: darken( $blue, 5% );
  306. }
  307. @if $sidebar-accent == light {
  308. background-color: lighten( $blue, 5% );
  309. }
  310. }
  311. &:focus,
  312. &:hover {
  313. text-decoration: none;
  314. color: #fff;
  315. }
  316. }
  317. .app-sidebar__toggle {
  318. padding: 0 15px;
  319. font-family: fontAwesome;
  320. color: #fff;
  321. line-height: 2.4;
  322. transition: background-color 0.3s ease;
  323. @media(max-width: 767px) { order: -1; }
  324. &:before {
  325. content: "\f0c9";
  326. font-size: 21px;
  327. }
  328. &:focus,
  329. &:hover {
  330. color: #fff;
  331. background-color: darken($blue, 10);
  332. text-decoration: none;
  333. }
  334. }
  335. .app-nav {
  336. @extend .list-unstyled;
  337. display: flex;
  338. margin-bottom: 0;
  339. justify-content: flex-end;
  340. @media(min-width: 768px) { flex: 1 0 auto; }
  341. }
  342. .app-nav__item {
  343. display: block;
  344. padding: 15px;
  345. line-height: 20px;
  346. color: #fff;
  347. transition: background-color 0.3s ease;
  348. &:hover,
  349. &:focus {
  350. background: rgba(0, 0, 0, 0.1);
  351. color: #f6f6f6;
  352. }
  353. }
  354. .app-search {
  355. position: relative;
  356. display: flex;
  357. align-self: center;
  358. margin-right: 15px;
  359. padding: 10px 0;
  360. @media(max-width: 480px) { display: none; }
  361. }
  362. .app-search__input {
  363. border: 0;
  364. padding: 5px 10px;
  365. padding-right: 30px;
  366. border-radius: 2px;
  367. background-color: rgba(255,255,255,0.8);
  368. transition: background-color 0.3s ease;
  369. &::placeholder { color: rgba(0,0,0,0.4); }
  370. }
  371. .app-search__button {
  372. position: absolute;
  373. right: 0;
  374. top: 10px;
  375. bottom: 10px;
  376. padding: 0 10px;
  377. border: 0;
  378. color: $blue;
  379. background: none;
  380. cursor: pointer;
  381. }
  382. .app-notification { min-width: 270px; }
  383. .app-notification__title {
  384. padding: 8px 20px;
  385. text-align: center;
  386. background-color: transparentize($blue, 0.6);
  387. color: #333;
  388. }
  389. .app-notification__footer {
  390. padding: 8px 20px;
  391. text-align: center;
  392. background-color: #eee;
  393. }
  394. .app-notification__content {
  395. max-height: 220px;
  396. overflow-y: auto;
  397. &::-webkit-scrollbar { width: 6px; }
  398. &::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.2); }
  399. }
  400. .app-notification__item {
  401. display: flex;
  402. padding: 8px 20px;
  403. color: inherit;
  404. border-bottom: 1px solid #ddd;
  405. transition: background-color 0.3s ease;
  406. &:focus,
  407. &:hover {
  408. color: inherit;
  409. text-decoration: none;
  410. background-color: #e0e0e0;
  411. }
  412. }
  413. .app-notification__message,
  414. .app-notification__meta {
  415. margin-bottom: 0;
  416. }
  417. .app-notification__icon { padding-right: 10px; }
  418. .app-notification__message { line-height: 1.2; }
  419. .app-notification__meta { @extend .text-muted; }
  420. // material-half-bg
  421. // Componant: Material Half cover background
  422. //-------------------------------------------------
  423. .material-half-bg {
  424. height: 100vh;
  425. background-color: #e7e7e7;
  426. position: fixed;
  427. top: 0;
  428. left: 0;
  429. right: 0;
  430. bottom: 0;
  431. z-index: -1;
  432. .cover {
  433. background-color: $blue;
  434. height: 50vh;
  435. }
  436. }
  437. // material-loader
  438. // Componant: Material Loader
  439. .m-loader {
  440. position: relative;
  441. width: 40px;
  442. &:before {
  443. content: '';
  444. display: block;
  445. padding-top: 100%;
  446. }
  447. }
  448. .m-circular {
  449. animation: rotate 1.5s linear infinite;
  450. height: 100%;
  451. transform-origin: center center;
  452. width: 100%;
  453. position: absolute;
  454. top: 0;
  455. bottom: 0;
  456. left: 0;
  457. right: 0;
  458. margin: auto;
  459. }
  460. .path {
  461. stroke-dasharray: 1,200;
  462. stroke-dashoffset: 0;
  463. stroke: $blue;
  464. animation: dash 1.5s ease-in-out infinite;
  465. stroke-linecap: round;
  466. }
  467. @keyframes rotate {
  468. 100% { transform: rotate(360deg); }
  469. }
  470. @keyframes dash {
  471. 0% {
  472. stroke-dasharray: 1,200;
  473. stroke-dashoffset: 0;
  474. }
  475. 50% {
  476. stroke-dasharray: 89,200;
  477. stroke-dashoffset: -35px;
  478. }
  479. 100% {
  480. stroke-dasharray: 89,200;
  481. stroke-dashoffset: -124px;
  482. }
  483. }
  484. // Usage Example
  485. // <div class="m-loader mr-20">
  486. // <svg class="m-circular" viewBox="25 25 50 50">
  487. // <circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="4" stroke-miterlimit="10"></circle>
  488. // </svg>
  489. // </div>
  490. // rtl
  491. // Componant: RTL
  492. // Right to left support
  493. [dir=rtl] {
  494. body {
  495. text-align: right;
  496. direction: rtl;
  497. }
  498. .app-sidebar {
  499. left: auto;
  500. right: 0;
  501. }
  502. .app-sidebar__user-avatar {
  503. margin-left: 15px;
  504. margin-right: 0;
  505. }
  506. .dropdown-menu.dropdown-menu-right {
  507. right: auto;
  508. left: 0;
  509. }
  510. .list-unstyled,
  511. .app-nav,
  512. .app-menu,
  513. .user .user-tabs,
  514. .treeview-menu {
  515. padding-right: 0;
  516. }
  517. .btn .icon,
  518. .btn .fa,
  519. .treeview-item .icon {
  520. margin-right: 0;
  521. margin-left: 5px;
  522. }
  523. .modal-header .close {
  524. margin-left: 0;
  525. margin-right: auto;
  526. }
  527. .modal-footer > :not(:last-child) {
  528. margin-right: 0;
  529. margin-left: 0.25rem;
  530. }
  531. .widget-small .icon { border-radius: 0 4px 4px 0; }
  532. .user .timeline-post .post-media img {
  533. margin-right: 0;
  534. margin-left: 10px;
  535. }
  536. table.table-bordered.dataTable th:last-child,
  537. table.table-bordered.dataTable th:last-child,
  538. table.table-bordered.dataTable td:last-child,
  539. table.table-bordered.dataTable td:last-child {
  540. border-right-width: 1px;
  541. }
  542. @media(min-width: 768px) {
  543. .app-header {
  544. padding-right: 0;
  545. padding-left: 30px;
  546. }
  547. .app-content {
  548. margin-left: 0;
  549. margin-right: 230px;
  550. transition: margin-right 0.3s ease;
  551. }
  552. .sidebar-mini.sidenav-toggled .app-content {
  553. margin-left: 0;
  554. margin-right: 50px;
  555. }
  556. .sidebar-mini.sidenav-toggled .app-menu__label,
  557. .sidebar-mini.sidenav-toggled .treeview-menu {
  558. left: auto;
  559. right: 50px;
  560. }
  561. .sidebar-mini.sidenav-toggled .treeview .app-menu__label {
  562. border-top-left-radius: 4px;
  563. border-top-right-radius: 0;
  564. border-bottom-left-radius: 0;
  565. }
  566. .sidebar-mini.sidenav-toggled .treeview-menu {
  567. border-bottom-right-radius: 0;
  568. border-bottom-left-radius: 4px;
  569. }
  570. .sidebar-mini.sidenav-toggled .app-menu__label {
  571. border-top-right-radius: 0;
  572. border-bottom-right-radius: 0;
  573. border-top-left-radius: 4px;
  574. border-bottom-left-radius: 4px;
  575. }
  576. }
  577. @media(max-width: 768px) {
  578. .app.sidenav-toggled .app-sidebar {
  579. left: auto;
  580. right: 0;
  581. }
  582. .app .app-sidebar {
  583. left: auto;
  584. right: -230px;
  585. }
  586. }
  587. }
  588. // sidebar
  589. // Componant: Sidebar
  590. .app-sidebar {
  591. position: fixed;
  592. top: 0;
  593. bottom: 0;
  594. left: 0;
  595. padding-top: 70px;
  596. width: $sidebar-width;
  597. overflow: auto;
  598. z-index: 10;
  599. //background-color: $sidebar-color;
  600. background-color: $sidebar-bg;
  601. box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.2);
  602. transition: left 0.3s ease,
  603. width 0.3s ease;
  604. &::-webkit-scrollbar { width: 6px; }
  605. &::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.2); }
  606. @media print { display: none; }
  607. }
  608. .app-sidebar__overlay {
  609. @media(max-width: 767px) {
  610. position: fixed;
  611. top: 0;
  612. left: 0;
  613. bottom: 0;
  614. right: 0;
  615. z-index: 9;
  616. }
  617. }
  618. .app-sidebar__user {
  619. display: flex;
  620. align-items: center;
  621. padding: 10px;
  622. margin-bottom: 20px;
  623. @if $sidebar-accent == dark {
  624. color: #fff;
  625. }
  626. }
  627. .app-sidebar__user-avatar {
  628. @extend .rounded-circle;
  629. flex: 0 0 auto;
  630. margin-right: 15px;
  631. }
  632. .app-sidebar__user-name {
  633. font-size: 17px;
  634. line-height: 1.3;
  635. }
  636. .app-sidebar__user-name,
  637. .app-sidebar__user-designation {
  638. white-space: nowrap;
  639. overflow: hidden;
  640. text-overflow: ellipsis;
  641. margin-bottom: 0;
  642. }
  643. .app-menu {
  644. @extend .list-unstyled;
  645. margin-bottom: 0;
  646. padding-bottom: 40px;
  647. }
  648. .app-menu__item {
  649. position: relative;
  650. display: flex;
  651. align-items: center;
  652. padding: 12px 15px;
  653. font-size: 1.08em;
  654. border-left: 3px solid transparent;
  655. transition: border-left-color 0.3s ease,
  656. background-color 0.3s ease;
  657. @if $sidebar-accent == dark { color: $sidebar-dark-link-color }
  658. @if $sidebar-accent == light { color: $sidebar-light-link-color }
  659. //&.active,
  660. &:hover{
  661. //background: darken($sidebar-color, 5);
  662. background: $sidebar-hover-bg;
  663. //background: $sidebar-color;
  664. border-left-color: $blue;
  665. text-decoration: none;
  666. @if $sidebar-accent == dark { color: $sidebar-dark-link-color }
  667. @if $sidebar-accent == light { color: $blue }
  668. }
  669. &.active,
  670. &:focus {
  671. //background: darken($sidebar-color, 5);
  672. background: $blue;
  673. //background: $sidebar-color;
  674. border-left-color: $blue;
  675. text-decoration: none;
  676. @if $sidebar-accent == dark { color: $sidebar-dark-link-color }
  677. @if $sidebar-accent == light { color: $white }
  678. }
  679. }
  680. .app-menu__icon {
  681. flex: 0 0 auto;
  682. width: 25px;
  683. }
  684. .app-menu__label {
  685. white-space: nowrap;
  686. flex: 1 1 auto;
  687. }
  688. .treeview {
  689. &.is-expanded {
  690. [data-toggle='treeview'] {
  691. border-left-color: $blue;
  692. //background: darken($sidebar-color, 10);
  693. //background: lighten(#3c3f42, 30);
  694. background: $blue;
  695. &:hover {
  696. border-left-color: $blue;
  697. background: $sidebar-hover-bg;
  698. color: $blue;
  699. }
  700. }
  701. .treeview-menu { max-height: 100vh; }
  702. .treeview-indicator { transform: rotate(-90deg); }
  703. }
  704. }
  705. .treeview-menu {
  706. @extend .list-unstyled;
  707. max-height: 0;
  708. overflow: hidden;
  709. transition: max-height 0.3s ease;
  710. @if $sidebar-accent == dark {
  711. background: lighten($sidebar-color, 4)
  712. }
  713. @if $sidebar-accent == light {
  714. //background: darken($sidebar-color, 4)
  715. background:lighten(#3c3f42, 10);
  716. }
  717. }
  718. .treeview-item {
  719. display: flex;
  720. align-items: center;
  721. padding: 5px 5px 5px 20px;
  722. font-size: 1em;
  723. @if $sidebar-accent == dark { color: $sidebar-dark-link-color }
  724. @if $sidebar-accent == light { color: $sidebar-light-link-color }
  725. &:hover {
  726. //background: darken($sidebar-color, 10);
  727. background: $sidebar-hover-bg;
  728. border-left: 3px solid $blue;
  729. text-decoration: none;
  730. @if $sidebar-accent == dark { color: $sidebar-dark-link-color }
  731. @if $sidebar-accent == light { color: $blue }
  732. }
  733. &.active ,&:focus{
  734. //background: darken($sidebar-color, 10);
  735. background: $blue;
  736. border-left-color: $blue;
  737. text-decoration: none;
  738. @if $sidebar-accent == dark { color: $sidebar-dark-link-color }
  739. @if $sidebar-accent == light { color: $white }
  740. }
  741. .icon { margin-right: 5px; }
  742. }
  743. .treeview-indicator {
  744. transform-origin: center;
  745. transition: transform 0.3s ease;
  746. }
  747. // sidebar-mini
  748. // Componant: Sidebar Mini
  749. @media (min-width: 768px) {
  750. .sidebar-mini.sidenav-toggled {
  751. .app-sidebar__user-name,
  752. .app-sidebar__user-designation,
  753. .treeview-indicator {
  754. display: none;
  755. }
  756. .app-sidebar__user-avatar {
  757. width: 30px;
  758. height: 30px;
  759. }
  760. .app-content { margin-left: 50px; }
  761. .app-sidebar {
  762. left: 0;
  763. width: 50px;
  764. overflow: hidden;
  765. &:hover { overflow: visible; }
  766. }
  767. .app-menu__item {
  768. overflow: hidden;
  769. &:hover {
  770. overflow: visible;
  771. .app-menu__label { opacity: 1; }
  772. & + .treeview-menu { visibility: visible; }
  773. }
  774. }
  775. .app-menu__label {
  776. display: block;
  777. position: absolute;
  778. top: 0;
  779. left: 50px;
  780. min-width: 180px;
  781. padding: 12px 5px 12px 20px;
  782. margin-left: -3px;
  783. line-height: 1;
  784. opacity: 0;
  785. //background: darken($sidebar-color, 10);
  786. background: $blue;
  787. color: $white;
  788. border-top-right-radius: 4px;
  789. border-bottom-right-radius: 4px;
  790. }
  791. .treeview {
  792. &:hover {
  793. .app-menu__item {
  794. overflow: visible;
  795. //background: darken($sidebar-color, 10);
  796. background: $sidebar-hover-bg;
  797. @if $sidebar-accent == dark { color: $sidebar-dark-link-color }
  798. @if $sidebar-accent == light { color: $blue }
  799. }
  800. .app-menu__label { opacity: 1; }
  801. .treeview-menu {
  802. max-height: 100vh;
  803. opacity: 1;
  804. visibility: visible;
  805. z-index: 10;
  806. }
  807. }
  808. .app-menu__label { border-bottom-right-radius: 0; }
  809. }
  810. .treeview-menu {
  811. position: absolute;
  812. left: 50px;
  813. min-width: 180px;
  814. padding: 12px 0;
  815. opacity: 0;
  816. border-bottom-right-radius: 4px;
  817. z-index: 9;
  818. visibility: hidden;
  819. transition: visibility 0.3s ease;
  820. }
  821. }
  822. }
  823. // tile
  824. // Componant: Card
  825. .tile {
  826. position: relative;
  827. background: #ffffff;
  828. border-radius: 3px;
  829. padding: 20px;
  830. box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
  831. margin-bottom: 30px;
  832. transition: all 0.3s ease-in-out;
  833. @media print {
  834. border: 1px solid #ddd;
  835. }
  836. &.small { padding: 0; }
  837. .overlay {
  838. position: absolute;
  839. top: 0;
  840. left: 0;
  841. bottom: 0;
  842. right: 0;
  843. background-color: rgba(255, 255, 255, 0.9);
  844. display: flex;
  845. align-items: center;
  846. justify-content: center;
  847. flex-direction: row;
  848. color: #555;
  849. border-radius: 3px;
  850. .l-text {
  851. font-size: 24px;
  852. margin-top: 15px;
  853. }
  854. }
  855. .tile-title {
  856. margin-top: 0;
  857. margin-bottom: 20px;
  858. font-size: 1.5rem;
  859. }
  860. .tile-title-w-btn {
  861. display: flex;
  862. justify-content: space-between;
  863. align-items: center;
  864. margin-bottom: 20px;
  865. p { margin: 0; }
  866. .title { margin: 0; }
  867. .side {
  868. margin-bottom: 0;
  869. padding-left: 0;
  870. }
  871. .btn-group { flex: 0 0 auto; }
  872. }
  873. .tile-footer {
  874. border-top: 1px solid #ddd;
  875. padding: 20px 0 0 0;
  876. margin-top: 10px;
  877. }
  878. }
  879. // toggle-button
  880. // Componant: Toggle Button
  881. .toggle {
  882. &.lg {
  883. input[type="checkbox"] + .button-indecator:before {
  884. font-size: 30px;
  885. }
  886. }
  887. input[type="checkbox"] {
  888. display: none;
  889. + .button-indecator {
  890. cursor: pointer;
  891. display: block;
  892. user-select: none;
  893. &:before {
  894. content: "";
  895. font-family: "FontAwesome";
  896. speak: none;
  897. font-style: normal;
  898. font-weight: normal;
  899. font-variant: normal;
  900. text-transform: none;
  901. line-height: 1;
  902. font-size: 25px;
  903. -webkit-font-smoothing: antialiased;
  904. display: inline-block;
  905. margin-right: 5px;
  906. vertical-align: -2px;
  907. }
  908. }
  909. &:checked + .button-indecator:before {
  910. content: "";
  911. color: $blue;
  912. animation: toggleBtn 0.3s ease-in-out;
  913. }
  914. &:disabled + .button-indecator {
  915. cursor: not-allowed !important;
  916. &:before {
  917. color: #ccc;
  918. }
  919. }
  920. }
  921. }
  922. .toggle-flip {
  923. input[type="checkbox"] {
  924. display: none;
  925. + .flip-indecator {
  926. position: relative;
  927. width: 60px;
  928. height: 30px;
  929. display: block;
  930. cursor: pointer;
  931. user-select: none;
  932. perspective: 90px;
  933. &:before, &:after {
  934. position: absolute;
  935. top: 0;
  936. left: 0;
  937. display: inline-block;
  938. width: 100%;
  939. line-height: 30px;
  940. backface-visibility: hidden;
  941. text-align: center;
  942. border-radius: 3px;
  943. transition: all 0.5s ease;
  944. }
  945. &:before {
  946. content: attr(data-toggle-off);
  947. background-color: #ddd;
  948. }
  949. &:after {
  950. content: attr(data-toggle-on);
  951. background-color: $blue;
  952. color: #fff;
  953. transform: rotateY(-180deg);
  954. }
  955. }
  956. &:checked {
  957. + .flip-indecator {
  958. &:before {
  959. transform: rotateY(180deg);
  960. }
  961. &:after {
  962. transform: rotateY(0deg);
  963. }
  964. }
  965. }
  966. &:disabled + .flip-indecator {
  967. cursor: not-allowed !important;
  968. color: #ccc;
  969. }
  970. }
  971. }
  972. // Slide the toggle button
  973. @keyframes toggleBtn {
  974. 0% {
  975. opacity: 0;
  976. transform: translateX(-1px);
  977. }
  978. 100% {
  979. opacity: 1;
  980. transform: translateX(0);
  981. }
  982. }
  983. // widgets
  984. // Componant: Widget
  985. .widget-small {
  986. display: flex;
  987. border-radius: 4px;
  988. color: $white;
  989. margin-bottom: 30px;
  990. box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  991. .icon {
  992. display: flex;
  993. min-width: 85px;
  994. align-items: center;
  995. justify-content: center;
  996. padding: 20px;
  997. background-color: rgba(0, 0, 0, 0.2);
  998. border-radius: 4px 0 0 4px;
  999. font-size: 2.5rem;
  1000. }
  1001. .info {
  1002. flex: 1;
  1003. padding: 0 20px;
  1004. align-self: center;
  1005. h4 {
  1006. text-transform: uppercase;
  1007. margin: 0;
  1008. margin-bottom: 5px;
  1009. font-weight: 400;
  1010. font-size: 1.1rem;
  1011. }
  1012. p {
  1013. margin: 0;
  1014. font-size: 16px;
  1015. }
  1016. }
  1017. &.primary {
  1018. background-color: $blue;
  1019. &.coloured-icon {
  1020. background-color: #fff;
  1021. color: #2a2a2a;
  1022. .icon {
  1023. background-color: $blue;
  1024. color: #fff;
  1025. }
  1026. }
  1027. }
  1028. &.info {
  1029. background-color: theme-color("info");
  1030. &.coloured-icon {
  1031. background-color: #fff;
  1032. color: #2a2a2a;
  1033. .icon {
  1034. background-color: theme-color("info");
  1035. color: #fff;
  1036. }
  1037. }
  1038. }
  1039. &.warning {
  1040. background-color: theme-color("warning");
  1041. &.coloured-icon {
  1042. background-color: #fff;
  1043. color: #2a2a2a;
  1044. .icon {
  1045. background-color: theme-color("warning");
  1046. color: #fff;
  1047. }
  1048. }
  1049. }
  1050. &.danger {
  1051. background-color: theme-color("danger");
  1052. &.coloured-icon {
  1053. background-color: #fff;
  1054. color: #2a2a2a;
  1055. .icon {
  1056. background-color: theme-color("danger");
  1057. color: #fff;
  1058. }
  1059. }
  1060. }
  1061. }
  1062. // style input search-cancel-button in panel page
  1063. input[type="search"]::-webkit-search-cancel-button {
  1064. -webkit-appearance: none;
  1065. height: 13px;
  1066. width: 13px;
  1067. background: url("data:image/svg+xml;charset=UTF-8,%3csvg viewPort='0 0 12 12' version='1.1' xmlns='http://www.w3.org/2000/svg'%3e%3cline x1='1' y1='11' x2='11' y2='1' stroke='purple' stroke-width='2'/%3e%3cline x1='1' y1='1' x2='11' y2='11' stroke='purple' stroke-width='2'/%3e%3c/svg%3e");
  1068. }
  1069. input[type="search"]{
  1070. height: 30px;
  1071. }
  1072. .style-bg-search{
  1073. &:focus{
  1074. background: rgba(255, 255, 255, 0.8);
  1075. }
  1076. }