diff --git a/docs/components.html b/docs/components.html index 50f4f5eb5..36d52b781 100644 --- a/docs/components.html +++ b/docs/components.html @@ -7,8 +7,8 @@ Components - Spectre.css - - + + diff --git a/docs/css/docs.css b/docs/css/docs.css new file mode 100644 index 000000000..123ec3186 --- /dev/null +++ b/docs/css/docs.css @@ -0,0 +1,218 @@ +/*! Spectre.css Docs | MIT License | github.com/picturepan2/spectre */ +/* Spectre version */ +.version::after { + content: "0.2.1"; +} +/* Spectre docs style */ +.grid-hero { + margin-bottom: 4rem; + margin-top: 10rem; +} +.grid-hero h1 { + color: #555; + font-size: 3.2rem; + font-weight: 400; +} +.grid-hero h2 { + color: #666; + font-size: 1.8rem; + font-weight: 400; + line-height: 3rem; + margin-bottom: 5rem; +} +.grid-hero h2 u { + border-bottom: .2rem solid #666; + padding-bottom: .1rem; + text-decoration: none; +} +.grid-hero .card { + background: none; + border: 0; + color: #666; + padding: 1rem; +} +.grid-hero .card .card-title { + color: #5764c6; + font-size: 1.8rem; + margin-bottom: 0; +} +.bg-grey { + background-color: #f6f6f6; + border-radius: .2rem; + padding: 1rem .5rem; +} +.bg-dark { + background: #2d3354; + color: #fff; + padding: 1rem .5rem; +} +.bg-primary { + background: #5764c6; + color: #fff; + padding: 1rem .5rem; +} +.navbar-brand .icon { + font-size: 1.3333em; + line-height: .8em; + vertical-align: -20%; +} +.grid-header .btn { + color: #666; +} +.grid-header .btn:hover, +.grid-header .btn:focus, +.grid-header .btn:active { + color: #444; + opacity: .75; +} +.grid-header .navbar-brand { + color: #444; +} +.grid-footer { + color: #888; + margin-bottom: 3rem; + margin-top: 4rem; +} +.grid-footer a { + color: #666; +} +.empty .icon { + font-size: 4rem; +} +.code { + color: #666; +} +.code .com { + color: #adadad; +} +.code .tag { + color: #4452c0; +} +.code .atn { + color: #666; +} +.code .atv { + color: #e06870; +} +.docs-content .container { + padding: 2rem 1rem; +} +.docs-content header { + padding-top: 2rem; +} +.docs-content pre { + margin-bottom: 2rem; + margin-top: 2rem; +} +.docs-content .notes { + color: #666; + margin: 4rem 0; +} +.docs-content h3, +.docs-content h4, +.docs-content h5 { + margin-bottom: 2rem; + margin-top: 2rem; +} +.example-tile-icon { + -webkit-align-content: space-around; + align-content: space-around; + -webkit-align-items: center; + align-items: center; + background: #5764c6; + border-radius: .2rem; + color: #fff; + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + -ms-flex-align: center; + -ms-flex-line-pack: distribute; + font-size: 2.4rem; + height: 4rem; + width: 4rem; +} +@media screen and (min-width: 481px) { + .docs-sidebar { + padding: 6rem 0; + } + .docs-sidebar .docs-nav { + position: relative; + } + @supports ((position: -webkit-sticky) or (position: sticky)) { + .docs-sidebar .docs-nav { + position: sticky; + position: -webkit-sticky; + top: 6rem; + } + .docs-sidebar .docs-nav .nav-item a:focus { + box-shadow: none; + } + } +} +.docs-nav-clear { + display: none; +} +.show-xs { + display: none !important; +} +@media screen and (max-width: 480px) { + .show-xs { + display: block !important; + } + .grid-hero h2 { + font-size: 1.8rem; + } + .grid-hero .card { + padding: 0; + } + .section-header { + padding: 0 .5rem; + position: fixed; + top: 0; + width: 100%; + z-index: 299; + } + .section-header .btn-link { + padding-left: .6rem; + padding-right: .6rem; + } + .docs-sidebar { + background: #fff; + height: 100%; + overflow-y: auto; + padding-left: 3rem; + position: fixed; + right: 0; + top: 0; + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); + transition: transform .216s ease, -webkit-transform .216s ease; + transition: transform .216s ease; + transition: -webkit-transform .216s ease; + width: 24rem; + z-index: 999; + } + .docs-sidebar:target { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } + .docs-sidebar:target + .docs-nav-clear { + display: block; + } + .docs-content header { + padding-top: 6rem; + } + .docs-nav-clear { + background: rgba(0, 0, 0, .15); + display: none; + height: 100%; + left: 0; + position: fixed; + right: 0; + top: 0; + width: 100%; + z-index: 499; + } +} \ No newline at end of file diff --git a/docs/css/docs.min.css b/docs/css/docs.min.css deleted file mode 100644 index c7370e795..000000000 --- a/docs/css/docs.min.css +++ /dev/null @@ -1 +0,0 @@ -/*! Spectre.css Docs | MIT License | github.com/picturepan2/spectre */.version::after{content:"0.2.1"}.grid-hero{margin-bottom:4rem;margin-top:10rem}.grid-hero h1{color:#555;font-size:3.2rem;font-weight:400}.grid-hero h2{color:#666;font-size:1.8rem;font-weight:400;line-height:3rem;margin-bottom:5rem}.grid-hero h2 u{border-bottom:.2rem solid #666;padding-bottom:.1rem;text-decoration:none}.grid-hero .card{background:0 0;border:0;color:#666;padding:1rem}.grid-hero .card .card-title{color:#5764c6;font-size:1.8rem;margin-bottom:0}.bg-grey{background-color:#f6f6f6;border-radius:.2rem;padding:1rem .5rem}.bg-dark{background:#2d3354;color:#fff;padding:1rem .5rem}.bg-primary{background:#5764c6;color:#fff;padding:1rem .5rem}.navbar-brand .icon{font-size:1.3333em;line-height:.8em;vertical-align:-20%}.grid-header .btn{color:#666}.grid-header .btn:active,.grid-header .btn:focus,.grid-header .btn:hover{color:#444;opacity:.75}.grid-header .navbar-brand{color:#444}.grid-footer{color:#888;margin-bottom:3rem;margin-top:4rem}.grid-footer a{color:#666}.empty .icon{font-size:4rem}.code{color:#666}.code .com{color:#adadad}.code .tag{color:#4452c0}.code .atn{color:#666}.code .atv{color:#e06870}.docs-content .container{padding:2rem 1rem}.docs-content header{padding-top:2rem}.docs-content pre{margin-bottom:2rem;margin-top:2rem}.docs-content .notes{color:#666;margin:4rem 0}.docs-content h3,.docs-content h4,.docs-content h5{margin-bottom:2rem;margin-top:2rem}.example-tile-icon{-webkit-align-content:space-around;align-content:space-around;-webkit-align-items:center;align-items:center;background:#5764c6;border-radius:.2rem;color:#fff;display:flex;display:-ms-flexbox;display:-webkit-flex;-ms-flex-align:center;-ms-flex-line-pack:distribute;font-size:2.4rem;height:4rem;width:4rem}@media screen and (min-width:481px){.docs-sidebar{padding:6rem 0}.docs-sidebar .docs-nav{position:relative}@supports ((position:-webkit-sticky) or (position:sticky)){.docs-sidebar .docs-nav{position:sticky;position:-webkit-sticky;top:6rem}.docs-sidebar .docs-nav .nav-item a:focus{box-shadow:none}}}.docs-nav-clear{display:none}.show-xs{display:none!important}@media screen and (max-width:480px){.show-xs{display:block!important}.grid-hero h2{font-size:1.8rem}.grid-hero .card{padding:0}.section-header{padding:0 .5rem;position:fixed;top:0;width:100%;z-index:299}.section-header .btn-link{padding-left:.6rem;padding-right:.6rem}.docs-sidebar{background:#fff;height:100%;overflow-y:auto;padding-left:3rem;position:fixed;right:0;top:0;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition:transform .216s ease,-webkit-transform .216s ease;transition:transform .216s ease;transition:-webkit-transform .216s ease;width:24rem;z-index:999}.docs-sidebar:target{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.docs-sidebar:target+.docs-nav-clear{display:block}.docs-content header{padding-top:6rem}.docs-nav-clear{background:rgba(0,0,0,.15);display:none;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:499}} \ No newline at end of file diff --git a/docs/css/spectre.css b/docs/css/spectre.css new file mode 100644 index 000000000..2f2adf83b --- /dev/null +++ b/docs/css/spectre.css @@ -0,0 +1,2663 @@ +/*! Spectre.css | MIT License | github.com/picturepan2/spectre */ +/* Manually forked from Normalize.css */ +/* normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Change the default font family in all browsers (opinionated). + * 2. Correct the line height in all browsers. + * 3. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ +/* Document + ========================================================================== */ +html { + font-family: sans-serif; + /* 1 */ + line-height: 1.15; + /* 3 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -ms-text-size-adjust: 100%; + /* 3 */ +} +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers (opinionated). + */ +body { + margin: 0; +} +/** + * Add the correct display in IE 9-. + */ +article, +aside, +footer, +header, +nav, +section { + display: block; +} +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: .67em 0; +} +/* Grouping content + ========================================================================== */ +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in IE. + */ +figcaption, +figure, +main { + /* 1 */ + display: block; +} +/** + * Add the correct margin in IE 8 (removed). + */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ +} +/** + * 1. Correct the inheritance and scaling of font size in all browsers. (removed) + * 2. Correct the odd `em` font sizing in all browsers. + */ +/* Text-level semantics + ========================================================================== */ +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ +a { + background-color: transparent; + /* 1 */ + -webkit-text-decoration-skip: objects; + /* 2 */ +} +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). + */ +a:active, +a:hover { + outline-width: 0; +} +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. (removed) + */ +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ +b, +strong { + font-weight: inherit; +} +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} +/** + * Add the correct font style in Android 4.3-. + */ +dfn { + font-style: italic; +} +/** + * Add the correct background and color in IE 9-. (Removed) + */ +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sub { + bottom: -.25em; +} +sup { + top: -.5em; +} +/* Embedded content + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +audio, +video { + display: inline-block; +} +/** + * Add the correct display in iOS 4-7. + */ +audio:not([controls]) { + display: none; + height: 0; +} +/** + * Remove the border on images inside links in IE 10-. + */ +img { + border-style: none; +} +/** + * Hide the overflow in IE. + */ +svg:not(:root) { + overflow: hidden; +} +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 (changed) */ + font-size: inherit; + /* 1 (changed) */ + line-height: inherit; + /* 1 (changed) */ + margin: 0; + /* 2 */ +} +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { + /* 1 */ + overflow: visible; +} +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; +} +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; + /* 2 */ +} +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} +/** + * Restore the focus styles unset by the previous rule (removed). + */ +/** + * Change the border, margin, and padding in all browsers (opinionated) (changed). + */ +fieldset { + border: 0; + margin: 0; + padding: 0; +} +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; + /* 1 */ + color: inherit; + /* 2 */ + display: table; + /* 1 */ + max-width: 100%; + /* 1 */ + padding: 0; + /* 3 */ + white-space: normal; + /* 1 */ +} +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ +} +/** + * Remove the default vertical scrollbar in IE. + */ +textarea { + overflow: auto; +} +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} +/* Interactive + ========================================================================== */ +/* + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + */ +details, +menu { + display: block; +} +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; +} +/* Scripting + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +canvas { + display: inline-block; +} +/** + * Add the correct display in IE. + */ +template { + display: none; +} +/* Hidden + ========================================================================== */ +/** + * Add the correct display in IE 10-. + */ +[hidden] { + display: none; +} +*, +*::before, +*::after { + box-sizing: inherit; +} +html { + box-sizing: border-box; + font-size: 10px; + line-height: 1.42857143; + -webkit-tap-highlight-color: transparent; +} +body { + background: #fff; + color: #333; + font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif; + font-size: 1.4rem; + overflow-x: hidden; + text-rendering: optimizeLegibility; +} +a { + color: #5764c6; + text-decoration: none; +} +a:focus, +a:hover { + color: #3b49af; + text-decoration: underline; +} +:focus { + box-shadow: 0 0 0 .2rem rgba(87, 100, 198, .15); + outline: 0; +} +[disabled], +.disabled { + cursor: default; + opacity: .5; + pointer-events: none; +} +.btn .icon, +.toast .icon, +.menu .icon { + font-size: 1.3333em; + line-height: .8em; + vertical-align: -20%; +} +.icon-caret { + border-left: .4rem solid transparent; + border-right: .4rem solid transparent; + border-top: .4rem solid currentColor; + display: inline-block; + height: 0; + margin: 0 .2rem; + vertical-align: middle; + width: 0; +} +h1, +h2, +h3, +h4, +h5, +h6 { + color: inherit; + font-weight: 300; + line-height: 1.2; + margin-bottom: 1.5rem; + margin-top: 0; +} +h1 { + font-size: 5rem; +} +h2 { + font-size: 4rem; +} +h3 { + font-size: 3rem; +} +h4 { + font-size: 2.4rem; +} +h5 { + font-size: 2rem; +} +h6 { + font-size: 1.6rem; +} +p { + line-height: 2.4rem; + margin: 0 0 1em; +} +blockquote { + border-left: .2rem solid #ddd; + margin-left: 0; + padding: 1rem 2rem; +} +blockquote p:last-child { + margin-bottom: 0; +} +blockquote cite { + color: #b3b3b3; +} +ul, +ol { + margin: 2rem 0 2rem 2rem; + padding: 0; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin: 1.5rem 0 1.5rem 2rem; +} +ul li, +ol li { + margin-top: 1rem; +} +ul { + list-style: disc inside; +} +ul ul { + list-style-type: circle; +} +ol { + list-style: decimal inside; +} +ol ol { + list-style-type: lower-alpha; +} +dl dt { + font-weight: bold; +} +dl dd { + margin: .5rem 0 1.5rem 0; +} +mark { + background: #ffe9b3; + border-radius: .2rem; + padding: .1em .3em; + vertical-align: baseline; +} +kbd { + background: #333; + border-radius: .2rem; + color: #fff; + padding: .1em .3em; + vertical-align: baseline; +} +abbr[title] { + border-bottom: .1rem dotted; + cursor: help; + text-decoration: none; +} +code { + background: #efefef; + border-radius: .2rem; + color: #666; + padding: .1em .3em; + vertical-align: baseline; +} +pre { + background: #f9f9f9; + line-height: 1.8rem; + margin-bottom: 1em; + margin-top: 1em; + overflow: auto; + padding: 2rem 2.5rem; + position: relative; +} +pre > code { + background: transparent; + border-left: 0; + line-height: 1.8rem; + padding: 0; +} +pre > code::before { + color: #c5c5c5; + content: attr(data-lang); + font-size: 1.2rem; + position: absolute; + right: 1rem; + top: .2rem; +} +:lang(zh), +:lang(ja), +:lang(ko), +.cjk { + font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Hiragino Kaku Gothic Pro", Meiryo, "Malgun Gothic", "Helvetica Neue", sans-serif; +} +:lang(zh) ins, +:lang(ja) ins, +.cjk ins, +:lang(zh) u, +:lang(ja) u, +.cjk u { + border-bottom: .1rem solid; + text-decoration: none; +} +:lang(zh) del + del, +:lang(ja) del + del, +.cjk del + del, +:lang(zh) del + s, +:lang(ja) del + s, +.cjk del + s, +:lang(zh) ins + ins, +:lang(ja) ins + ins, +.cjk ins + ins, +:lang(zh) ins + u, +:lang(ja) ins + u, +.cjk ins + u, +:lang(zh) s + del, +:lang(ja) s + del, +.cjk s + del, +:lang(zh) s + s, +:lang(ja) s + s, +.cjk s + s, +:lang(zh) u + ins, +:lang(ja) u + ins, +.cjk u + ins, +:lang(zh) u + u, +:lang(ja) u + u, +.cjk u + u { + margin-left: .125em; +} +.table { + border-collapse: collapse; + border-spacing: 0; + text-align: left; + width: 100%; +} +.table.table-striped tbody tr:nth-of-type(odd) { + background: #f8f8f8; +} +.table.table-hover tbody tr:hover { + background: #f0f0f0; +} +.table tbody tr.active, +.table.table-striped tbody tr.active { + background: #f0f0f0; +} +.table th, +.table td { + border-bottom: .1rem solid #efefef; + padding: 1.5rem 1rem; +} +.table th { + border-color: #e2e2e2; +} +.btn { + -webkit-appearance: none; + background: #fff; + border: .1rem solid #5764c6; + border-radius: .2rem; + color: #5764c6; + cursor: pointer; + display: inline-block; + font-size: 1.4rem; + height: 3.2rem; + line-height: 1.6rem; + padding: .7rem 1.2rem; + text-align: center; + text-decoration: none; + transition: all .15s ease; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + vertical-align: middle; + white-space: nowrap; +} +.btn:focus { + background: #f7f8fc; + text-decoration: none; +} +.btn:hover { + background: #5764c6; + border-color: #4452c0; + color: #fff; + text-decoration: none; +} +.btn:active, +.btn.active { + background: #4452c0; + border-color: #3b49af; + color: #fff; +} +.btn.btn-primary { + background: #5764c6; + border-color: #4452c0; + color: #fff; +} +.btn.btn-primary:focus { + background: #4856c1; + border-color: #3b49af; + color: #fff; +} +.btn.btn-primary:hover { + background: #404fbe; + border-color: #35419c; + color: #fff; +} +.btn.btn-primary:active, +.btn.btn-primary.active { + background: #3e4cb6; + border-color: #35419c; + color: #fff; +} +.btn.btn-primary.loading::after { + border-color: #fff; + border-right-color: transparent; + border-top-color: transparent; +} +.btn.btn-link { + background: transparent; + border-color: transparent; + color: #5764c6; +} +.btn.btn-link:focus, +.btn.btn-link:hover { + color: #35419c; +} +.btn.btn-link:active, +.btn.btn-link.active { + color: #283176; +} +.btn.btn-sm { + font-size: 1.2rem; + height: 2.4rem; + line-height: 1.4rem; + padding: .4rem .8rem; +} +.btn.btn-lg { + font-size: 1.8rem; + height: 4.2rem; + line-height: 2rem; + padding: 1rem 1.5rem; +} +.btn.btn-block { + display: block; + width: 100%; +} +.btn.btn-action { + padding-left: .2rem; + padding-right: .2rem; + width: 3.2rem; +} +.btn.btn-action.btn-sm { + width: 2.4rem; +} +.btn.btn-action.btn-lg { + width: 4.2rem; +} +.btn.btn-clear { + background: transparent; + border: 0; + color: currentColor; + font-family: sans-serif; + height: 2rem; + line-height: 1.8rem; + margin-left: .2rem; + margin-right: -.4rem; + opacity: .45; + padding: 0 .4rem; + text-decoration: none; + width: 2rem; +} +.btn.btn-clear:hover { + opacity: .85; +} +.btn.btn-clear::before { + content: "\00d7"; + font-size: 2rem; +} +.btn-group { + display: inline-flex; + display: -ms-inline-flexbox; + display: -webkit-inline-flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.btn-group .btn { + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; +} +.btn-group .btn:first-of-type:not(:last-of-type) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group .btn:not(:first-of-type):not(:last-of-type) { + border-radius: 0; + margin-left: -.1rem; +} +.btn-group .btn:last-of-type:not(:first-of-type) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + margin-left: -.1rem; +} +.btn-group .btn:hover, +.btn-group .btn:focus, +.btn-group .btn:active, +.btn-group .btn.active { + z-index: 9; +} +.btn-group.btn-group-block { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; +} +.form-group:not(:last-child) { + margin-bottom: 1rem; +} +.form-input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: #fff; + background-image: none; + border: .1rem solid #c5c5c5; + border-radius: .2rem; + color: #333; + display: block; + font-size: 1.4rem; + height: 3.2rem; + line-height: 1.8rem; + max-width: 100%; + outline: 0; + padding: .6rem .8rem; + position: relative; + transition: all .15s ease; + width: 100%; +} +.form-input:focus { + border-color: #5764c6; +} +.form-input[disabled] { + background: #eeeff2; +} +.form-input.input-sm { + font-size: 1.2rem; + height: 2.4rem; + padding: .3rem .6rem; +} +.form-input.input-lg { + font-size: 1.6rem; + height: 4.2rem; + line-height: 2rem; + padding: 1rem .8rem; +} +.form-input.input-inline { + display: inline-block; + vertical-align: middle; + width: auto; +} +textarea.form-input { + height: auto; + line-height: 2rem; +} +.has-success .form-input, +.form-input.is-success { + border-color: #32b643; +} +.has-danger .form-input, +.form-input.is-danger { + border-color: #e85600; +} +.form-input[type=file] { + height: auto; +} +.form-input-hint { + color: #888; + margin-top: .4rem; +} +.has-success .form-input-hint, +.is-success + .form-input-hint { + color: #32b643; +} +.has-danger .form-input-hint, +.is-danger + .form-input-hint { + color: #e85600; +} +.form-label { + display: block; + line-height: 1.6rem; + margin-bottom: .5rem; +} +.form-select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: .1rem solid #c5c5c5; + border-radius: .2rem; + font-size: 1.4rem; + line-height: 1.6rem; + min-width: 18rem; + outline: 0; + padding: .5rem .8rem; + vertical-align: middle; +} +.form-select[multiple] option { + padding: .2rem .4rem; +} +.form-select:not([multiple]) { + background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC) no-repeat right .75rem center / .8rem 1rem; + height: 3.2rem; + padding-right: 2.4rem; +} +.form-select:focus { + border-color: #5764c6; +} +.form-select::-ms-expand { + display: none; +} +.form-select.select-sm { + font-size: 1.2rem; + height: 2.4rem; + padding: .4rem 2rem .4rem .6rem; +} +.form-select.select-lg { + font-size: 1.6rem; + height: 4.2rem; + line-height: 2rem; + padding: 1rem 2.4rem 1rem .8rem; +} +.has-success .form-select, +.form-select.is-success { + border-color: #32b643; +} +.has-danger .form-select, +.form-select.is-danger { + border-color: #e85600; +} +.form-checkbox input, +.form-radio input, +.form-switch input { + clip: rect(0, 0, 0, 0); + height: .1rem; + margin: -.1rem; + overflow: hidden; + position: absolute; + width: .1rem; +} +.form-checkbox input:focus + .form-icon, +.form-radio input:focus + .form-icon, +.form-switch input:focus + .form-icon { + border-color: #5764c6; + box-shadow: 0 0 0 .2rem rgba(87, 100, 198, .15); +} +.form-checkbox, +.form-radio { + cursor: pointer; + display: inline-block; + line-height: 1.8rem; + padding: .3rem 2rem; + position: relative; +} +.form-checkbox .form-icon, +.form-radio .form-icon { + border: .1rem solid #c5c5c5; + display: inline-block; + font-size: 1.4rem; + height: 1.4rem; + left: 0; + line-height: 2.4rem; + outline: none; + padding: 0; + position: absolute; + top: .5rem; + transition: all .15s ease; + vertical-align: top; + width: 1.4rem; +} +.form-checkbox:hover .form-icon, +.form-radio:hover .form-icon { + border-color: #929292; +} +.form-checkbox input:checked + .form-icon, +.form-radio input:checked + .form-icon { + background: #5764c6; + border-color: #5764c6; +} +.form-checkbox input:active + .form-icon, +.form-radio input:active + .form-icon { + background: #efefef; +} +.form-checkbox .form-icon { + border-radius: .2rem; +} +.form-checkbox input:checked + .form-icon::after { + background-clip: padding-box; + border: .2rem solid #fff; + border-left-width: 0; + border-top-width: 0; + content: ""; + height: 1rem; + left: 50%; + margin-left: -.3rem; + margin-top: -.6rem; + position: absolute; + top: 50%; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + width: .6rem; +} +.form-checkbox input:indeterminate + .form-icon { + background: #5764c6; + border-color: #5764c6; +} +.form-checkbox input:indeterminate + .form-icon::after { + background: #fff; + content: ""; + height: .2rem; + left: 50%; + margin-left: -.4rem; + margin-top: -.1rem; + position: absolute; + top: 50%; + width: .8rem; +} +.form-radio .form-icon { + border-radius: .7rem; +} +.form-radio input:checked + .form-icon::after { + background: #fff; + border-radius: .2rem; + content: ""; + height: .4rem; + left: 50%; + margin-left: -.2rem; + margin-top: -.2rem; + position: absolute; + top: 50%; + width: .4rem; +} +.form-switch { + cursor: pointer; + display: inline-block; + line-height: 2rem; + padding: .3rem 2rem .3rem 3.6rem; + position: relative; +} +.form-switch .form-icon { + background: #c5c5c5; + background-clip: padding-box; + border: .1rem solid #c5c5c5; + border-radius: .9rem; + display: inline-block; + height: 1.8rem; + left: 0; + line-height: 2.6rem; + outline: none; + padding: 0; + position: absolute; + top: .4rem; + vertical-align: top; + width: 3rem; +} +.form-switch .form-icon::after { + background: #fff; + border-radius: .8rem; + content: ""; + display: block; + height: 1.6rem; + left: 0; + position: absolute; + top: 0; + transition: left .15s ease; + width: 1.6rem; +} +.form-switch input:checked + .form-icon { + background: #5764c6; + border-color: #5764c6; +} +.form-switch input:checked + .form-icon::after { + left: 1.2rem; +} +.form-switch input:active + .form-icon::after { + background: #efefef; +} +.input-group { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; +} +.input-group .input-group-addon { + background: #f9f9f9; + border: .1rem solid #c5c5c5; + border-radius: .2rem; + line-height: 1.6rem; + padding: .7rem .8rem; +} +.input-group .input-group-addon.addon-sm { + font-size: 1.2rem; + padding: .3rem .6rem; +} +.input-group .input-group-addon.addon-lg { + font-size: 1.6rem; + line-height: 2rem; + padding: 1rem .8rem; +} +.input-group .input-group-addon, +.input-group .input-group-btn { + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; +} +.input-group .form-input:first-child:not(:last-child), +.input-group .input-group-addon:first-child:not(:last-child), +.input-group .input-group-btn:first-child:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.input-group .form-input:not(:first-child):not(:last-child), +.input-group .input-group-addon:not(:first-child):not(:last-child), +.input-group .input-group-btn:not(:first-child):not(:last-child) { + border-radius: 0; + margin-left: -.1rem; +} +.input-group .form-input:last-child:not(:first-child), +.input-group .input-group-addon:last-child:not(:first-child), +.input-group .input-group-btn:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + margin-left: -.1rem; +} +.input-group .form-input:focus, +.input-group .input-group-addon:focus, +.input-group .input-group-btn:focus { + z-index: 99; +} +.input-group.input-inline { + display: inline-flex; + display: -ms-inline-flexbox; + display: -webkit-inline-flex; +} +.label { + background: #efefef; + border-radius: .2rem; + color: #888; + padding: .1em .3em; + vertical-align: baseline; +} +.label.label-primary { + background: #5764c6; + color: #fff; +} +.label.label-success { + background: #32b643; + color: #fff; +} +.label.label-danger { + background: #e85600; + color: #fff; +} +.progress { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 0; + color: #5764c6; + height: .4rem; + width: 100%; +} +.progress::-webkit-progress-bar { + background: #efefef; + border-radius: .2rem; +} +.progress::-webkit-progress-value { + background: #5764c6; + border-radius: .2rem; +} +.progress::-moz-progress-bar { + background: #5764c6; + border-radius: .2rem; +} +.img-responsive { + display: block; + height: auto; + max-width: 100%; +} +.video-responsive { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.video-responsive::before { + content: ""; + display: block; + padding-bottom: 56.25%; + /* Default 16:9, you can calculate this value by dividing 9 by 16 */ +} +.video-responsive iframe, +.video-responsive object, +.video-responsive embed { + bottom: 0; + height: 100%; + left: 0; + position: absolute; + right: 0; + top: 0; + width: 100%; +} +.video-responsive video { + height: auto; + max-width: 100%; + width: 100%; +} +.video-responsive-4-3::before { + padding-bottom: 75%; + /* 4:3 */ +} +.video-responsive-1-1::before { + padding-bottom: 100%; + /* 1:1 */ +} +.figure { + margin: 0 0 1rem 0; +} +.figure .figure-caption { + color: #888; + margin-top: 1rem; +} +.container { + margin-left: auto; + margin-right: auto; + padding-left: 1rem; + padding-right: 1rem; + width: 100%; +} +@media screen and (min-width: 980px) { + .grid-960 { + width: 98rem; + } +} +@media screen and (min-width: 500px) { + .grid-480 { + width: 50rem; + } +} +.columns { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-left: -1rem; + margin-right: -1rem; +} +.columns.col-gapless { + margin-left: 0; + margin-right: 0; +} +.columns.col-gapless .column { + padding-left: 0; + padding-right: 0; +} +.columns.col-oneline { + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + overflow-x: auto; +} +.column { + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 1rem; +} +.column.col-12, +.column.col-11, +.column.col-10, +.column.col-9, +.column.col-8, +.column.col-7, +.column.col-6, +.column.col-5, +.column.col-4, +.column.col-3, +.column.col-2, +.column.col-1 { + -webkit-flex: none; + -ms-flex: none; + flex: none; +} +.col-12 { + width: 100%; +} +.col-11 { + width: 91.66666667%; +} +.col-10 { + width: 83.33333333%; +} +.col-9 { + width: 75%; +} +.col-8 { + width: 66.66666667%; +} +.col-7 { + width: 58.33333333%; +} +.col-6 { + width: 50%; +} +.col-5 { + width: 41.66666667%; +} +.col-4 { + width: 33.33333333%; +} +.col-3 { + width: 25%; +} +.col-2 { + width: 16.66666667%; +} +.col-1 { + width: 8.33333333%; +} +@media screen and (max-width: 1280px) { + .col-xl-12, + .col-xl-11, + .col-xl-10, + .col-xl-9, + .col-xl-8, + .col-xl-7, + .col-xl-6, + .col-xl-5, + .col-xl-4, + .col-xl-3, + .col-xl-2, + .col-xl-1 { + -webkit-flex: none; + -ms-flex: none; + flex: none; + } + .col-xl-12 { + width: 100%; + } + .col-xl-11 { + width: 91.66666667%; + } + .col-xl-10 { + width: 83.33333333%; + } + .col-xl-9 { + width: 75%; + } + .col-xl-8 { + width: 66.66666667%; + } + .col-xl-7 { + width: 58.33333333%; + } + .col-xl-6 { + width: 50%; + } + .col-xl-5 { + width: 41.66666667%; + } + .col-xl-4 { + width: 33.33333333%; + } + .col-xl-3 { + width: 25%; + } + .col-xl-2 { + width: 16.66666667%; + } + .col-xl-1 { + width: 8.33333333%; + } +} +@media screen and (max-width: 960px) { + .col-lg-12, + .col-lg-11, + .col-lg-10, + .col-lg-9, + .col-lg-8, + .col-lg-7, + .col-lg-6, + .col-lg-5, + .col-lg-4, + .col-lg-3, + .col-lg-2, + .col-lg-1 { + -webkit-flex: none; + -ms-flex: none; + flex: none; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } +} +@media screen and (max-width: 840px) { + .col-md-12, + .col-md-11, + .col-md-10, + .col-md-9, + .col-md-8, + .col-md-7, + .col-md-6, + .col-md-5, + .col-md-4, + .col-md-3, + .col-md-2, + .col-md-1 { + -webkit-flex: none; + -ms-flex: none; + flex: none; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } +} +@media screen and (max-width: 600px) { + .col-sm-12, + .col-sm-11, + .col-sm-10, + .col-sm-9, + .col-sm-8, + .col-sm-7, + .col-sm-6, + .col-sm-5, + .col-sm-4, + .col-sm-3, + .col-sm-2, + .col-sm-1 { + -webkit-flex: none; + -ms-flex: none; + flex: none; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } +} +@media screen and (max-width: 480px) { + .col-xs-12, + .col-xs-11, + .col-xs-10, + .col-xs-9, + .col-xs-8, + .col-xs-7, + .col-xs-6, + .col-xs-5, + .col-xs-4, + .col-xs-3, + .col-xs-2, + .col-xs-1 { + -webkit-flex: none; + -ms-flex: none; + flex: none; + } + .col-xs-12 { + width: 100%; + } + .col-xs-11 { + width: 91.66666667%; + } + .col-xs-10 { + width: 83.33333333%; + } + .col-xs-9 { + width: 75%; + } + .col-xs-8 { + width: 66.66666667%; + } + .col-xs-7 { + width: 58.33333333%; + } + .col-xs-6 { + width: 50%; + } + .col-xs-5 { + width: 41.66666667%; + } + .col-xs-4 { + width: 33.33333333%; + } + .col-xs-3 { + width: 25%; + } + .col-xs-2 { + width: 16.66666667%; + } + .col-xs-1 { + width: 8.33333333%; + } +} +.form-horizontal { + padding: 1rem; +} +.form-horizontal .form-group { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; +} +.form-horizontal .form-label { + margin-bottom: 0; + padding: .8rem .4rem; +} +.form-horizontal .form-checkbox, +.form-horizontal .form-radio { + margin: .4rem 0; +} +@media screen and (max-width: 480px) { + .hide-xs { + display: none !important; + } +} +@media screen and (max-width: 600px) { + .hide-sm { + display: none !important; + } +} +@media screen and (max-width: 840px) { + .hide-md { + display: none !important; + } +} +@media screen and (max-width: 960px) { + .hide-lg { + display: none !important; + } +} +@media screen and (max-width: 1280px) { + .hide-xl { + display: none !important; + } +} +.navbar { + -webkit-align-items: center; + align-items: center; + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + -ms-flex-align: center; + -ms-flex-pack: justify; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-justify-content: space-between; + justify-content: space-between; +} +.navbar .navbar-section { + -webkit-align-items: center; + align-items: center; + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + -ms-flex-align: center; + padding: 1rem 0; +} +.navbar .navbar-brand { + font-size: 1.6rem; + font-weight: 500; + padding-right: 2rem; + text-decoration: none; + vertical-align: middle; +} +.empty { + background: #f8f8f8; + border-radius: .2rem; + padding: 4rem; + text-align: center; +} +.empty .empty-title { + font-size: 1.8rem; + margin: 1.5rem 0 .5rem 0; +} +.empty .empty-meta { + color: #888; +} +.empty .empty-action { + margin-top: 1.5rem; +} +.form-autocomplete { + position: relative; +} +.form-autocomplete .form-autocomplete-input { + -webkit-align-content: flex-start; + align-content: flex-start; + background: #fff; + border: .1rem solid #c5c5c5; + border-radius: .2rem; + color: #333; + display: -ms-flexbox; + display: flex; + display: -webkit-flex; + -ms-flex-line-pack: start; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + min-height: 3.6rem; + outline: 0; + padding: .1rem 0 .1rem .2rem; + width: 100%; +} +.form-autocomplete .form-autocomplete-input.is-focused { + border-color: #5764c6; + box-shadow: 0 0 0 .2rem rgba(87, 100, 198, .15); +} +.form-autocomplete .form-autocomplete-input .form-input { + border-color: transparent; + box-shadow: none; + display: inline-block; + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + padding: .3rem; + width: auto; +} +.form-autocomplete mark { + font-size: 1; + padding: .1em 0; +} +.avatar { + border-radius: 50%; + color: #fff; + display: inline-block; + font-size: 1.4rem; + font-weight: 300; + height: 3.2rem; + line-height: 1; + margin: 0; + position: relative; + vertical-align: middle; + width: 3.2rem; +} +.avatar.avatar-xs { + font-size: .8rem; + height: 1.6rem; + width: 1.6rem; +} +.avatar.avatar-sm { + font-size: 1rem; + height: 2.4rem; + width: 2.4rem; +} +.avatar.avatar-lg { + font-size: 2rem; + height: 4.8rem; + width: 4.8rem; +} +.avatar.avatar-xl { + font-size: 2.6rem; + height: 6.4rem; + width: 6.4rem; +} +.avatar img { + border-radius: 50%; + height: 100%; + position: relative; + width: 100%; + z-index: 99; +} +.avatar .avatar-icon { + background: #fff; + bottom: -.2em; + height: 50%; + padding: 5%; + position: absolute; + right: -.2em; + width: 50%; +} +.avatar[data-initial]::after { + color: currentColor; + content: attr(data-initial); + left: 50%; + position: absolute; + top: 50%; + -webkit-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + z-index: 0; +} +.badge { + position: relative; +} +.badge[data-badge]::after, +.badge:not([data-badge])::after, +.badge[data-badge=""]::after { + background: #5764c6; + background-clip: padding-box; + border: .1rem solid #fff; + border-radius: 1rem; + color: #fff; + content: attr(data-badge); + display: inline-block; + -webkit-transform: translate(-.2rem, -.8rem); + -ms-transform: translate(-.2rem, -.8rem); + transform: translate(-.2rem, -.8rem); +} +.badge[data-badge]::after { + font-size: 1.1rem; + height: 1.8rem; + line-height: 1.2rem; + min-width: 1.8rem; + padding: .2rem .4rem; + text-align: center; + white-space: nowrap; +} +.badge:not([data-badge])::after, +.badge[data-badge=""]::after { + height: .8rem; + min-width: .8rem; + padding: 0; + width: .8rem; +} +.card { + background: #fff; + border: .1rem solid #efefef; + border-radius: .2rem; + display: block; + margin: 0; + padding: 0; + text-align: left; +} +.card .card-header, +.card .card-body, +.card .card-footer { + padding: 1.5rem 1.5rem 0 1.5rem; +} +.card .card-header:last-child, +.card .card-body:last-child, +.card .card-footer:last-child { + padding-bottom: 1.5rem; +} +.card .card-image { + padding-top: 1.5rem; +} +.card .card-image:first-child { + padding-top: 0; +} +.card .card-image:first-child img { + border-top-left-radius: .2rem; + border-top-right-radius: .2rem; +} +.card .card-image:last-child img { + border-bottom-left-radius: .2rem; + border-bottom-right-radius: .2rem; +} +.card .card-title { + font-size: 2rem; + line-height: 1; +} +.card .card-meta { + color: #888; + font-size: 1.3rem; +} +.chip { + -webkit-align-items: center; + align-items: center; + background: #efefef; + border-radius: .2rem; + color: #666; + display: -ms-inline-flexbox; + display: inline-flex; + display: -webkit-inline-flex; + -ms-flex-align: center; + height: 3rem; + margin: .1rem .2rem .1rem 0; + max-width: 100%; + padding: .5rem .8rem; + text-decoration: none; + vertical-align: middle; +} +.chip.active { + background: #5764c6; + color: #fff; +} +.chip .avatar { + font-size: 1rem; + height: 2rem; + margin-right: .4rem; + width: 2rem; +} +.chip .chip-meta { + background: rgba(0, 0, 0, .1); + font-size: 80%; + height: 3rem; + line-height: 2rem; + margin-left: .8rem; + margin-right: -.8rem; + opacity: .75; + padding: .5rem .8rem; +} +.chip .btn-clear::before { + font-size: 1.6rem; +} +.dropdown { + position: relative; +} +.dropdown .menu { + -webkit-animation: slide-down .216s; + animation: slide-down .216s; + display: none; + left: 0; + position: absolute; + top: 100%; +} +.dropdown.active .menu, +.dropdown .dropdown-toggle:focus + .menu, +.dropdown .menu:hover { + display: block; +} +.menu { + background: #fff; + border-radius: .2rem; + box-shadow: 0 .1rem .4rem rgba(0, 0, 0, .3); + display: block; + margin: 0; + min-width: 18rem; + padding: .8rem; + text-align: left; + -webkit-transform: translateY(.5rem); + -ms-transform: translateY(.5rem); + transform: translateY(.5rem); + z-index: 999; +} +.menu .menu-item { + border-radius: .2rem; + display: block; + line-height: 2.4rem; + margin-top: 0; + padding: .3rem .8rem; + text-decoration: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.menu .menu-item a { + border-radius: .2rem; + color: inherit; + display: block; + margin: -.3rem -.8rem; + padding: .3rem .8rem; + text-decoration: none; +} +.menu .menu-item a:focus, +.menu .menu-item a:hover { + color: #5764c6; +} +.menu .menu-item a:active, +.menu .menu-item a.active { + background: #eff1fa; + color: #4452c0; +} +.menu .menu-header { + color: #ccc; + display: block; + font-size: 1.2rem; + line-height: 1.8rem; + margin-top: 0; + padding: .2rem .8rem; +} +.menu .menu-header::after { + border-bottom: .1rem solid #efefef; + content: ""; + display: block; + height: .1rem; + -webkit-transform: translateY(-1rem); + -ms-transform: translateY(-1rem); + transform: translateY(-1rem); + width: 100%; +} +.menu .menu-header .menu-header-text { + background: #fff; + display: inline-block; + margin-left: -.6rem; + padding: 0 .6rem; + position: relative; + z-index: 99; +} +.modal { + -webkit-align-items: center; + align-items: center; + bottom: 0; + display: none; + -ms-flex-align: center; + -ms-flex-pack: center; + -ms-grid-row-align: center; + -webkit-justify-content: center; + justify-content: center; + left: 0; + opacity: 0; + overflow: hidden; + padding: 1rem; + position: fixed; + right: 0; + top: 0; +} +.modal:target, +.modal.active { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + opacity: 1; + z-index: 1988; +} +.modal:target .modal-overlay, +.modal.active .modal-overlay { + background: rgba(51, 51, 51, .5); + bottom: 0; + display: block; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.modal:target .modal-container, +.modal.active .modal-container { + -webkit-animation: slide-down .216s; + animation: slide-down .216s; + max-width: 64rem; +} +.modal.modal-sm .modal-container { + max-width: 32rem; +} +.modal-container { + background: #fff; + border-radius: .2rem; + box-shadow: 0 .1rem .4rem rgba(0, 0, 0, .3); + display: block; + margin: 0 auto; + padding: 0; + text-align: left; + z-index: 1988; +} +.modal-container .modal-header { + padding: 1.5rem; +} +.modal-container .modal-header .modal-title { + font-size: 1.6rem; + margin: 0; +} +.modal-container .modal-body { + max-height: 50vh; + overflow-y: auto; + padding: 1.5rem; + position: relative; +} +.modal-container .modal-footer { + padding: 1.5rem; + text-align: right; +} +.breadcrumb, +.tab, +.pagination, +.nav { + list-style: none; + margin: .5rem 0; +} +.breadcrumb { + padding: 1.2rem; +} +.breadcrumb .breadcrumb-item { + display: inline-block; + margin: 0; +} +.breadcrumb .breadcrumb-item:last-child { + color: #888; +} +.breadcrumb .breadcrumb-item:not(:first-child)::before { + color: #c5c5c5; + content: "/"; + padding: 0 .4rem; +} +.tab { + -webkit-align-items: center; + align-items: center; + border-bottom: .1rem solid #efefef; + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + -ms-flex-align: center; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.tab .tab-item { + margin-top: 0; +} +.tab .tab-item.tab-action { + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + text-align: right; +} +.tab .tab-item a { + border-bottom: .2rem solid transparent; + color: #333; + display: block; + margin-bottom: -.1rem; + margin-top: 0; + padding: .6rem .8rem; + text-decoration: none; +} +.tab .tab-item a:focus, +.tab .tab-item a:hover { + color: #5764c6; +} +.tab .tab-item a.badge { + padding-right: 0; +} +.tab .tab-item.active a, +.tab .tab-item a.active { + border-bottom-color: #5764c6; + color: #5764c6; +} +.tab.tab-block .tab-item { + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + text-align: center; +} +.tab.tab-block .tab-item .badge[data-badge]::after { + position: absolute; + right: -1.4rem; + top: 1rem; + -webkit-transform: translate(-50%, -1rem); + -ms-transform: translate(-50%, -1rem); + transform: translate(-50%, -1rem); +} +.pagination { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; +} +.pagination .page-item { + margin: 1rem .1rem; +} +.pagination .page-item span { + display: inline-block; + padding: .6rem .4rem; +} +.pagination .page-item a { + border-radius: .2rem; + color: #666; + display: inline-block; + padding: .6rem .8rem; + text-decoration: none; +} +.pagination .page-item a:focus, +.pagination .page-item a:hover { + color: #5764c6; +} +.pagination .page-item.active a { + background: #5764c6; + color: #fff; +} +.pagination .page-item.page-prev, +.pagination .page-item.page-next { + -webkit-flex: 1 0 50%; + -ms-flex: 1 0 50%; + flex: 1 0 50%; +} +.pagination .page-item.page-next { + text-align: right; +} +.pagination .page-item .page-item-title { + margin: 0; +} +.pagination .page-item .page-item-meta { + margin: 0; + opacity: .5; +} +.nav { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} +.nav .nav-item a { + color: #666; + padding: .6rem .8rem; + text-decoration: none; +} +.nav .nav-item a:focus, +.nav .nav-item a:hover { + color: #5764c6; +} +.nav .nav-item.active > a { + color: #333; + font-weight: bold; +} +.nav .nav-item.active > a:focus, +.nav .nav-item.active > a:hover { + color: #5764c6; +} +.nav .nav { + margin-bottom: 1rem; + margin-left: 2rem; +} +.nav .nav a { + color: #808080; +} +.step { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + list-style: none; + margin: .5rem 0; + width: 100%; +} +.step .step-item { + -webkit-flex: 1 1 0; + -ms-flex: 1 1 0; + flex: 1 1 0; + margin-top: 0; + min-height: 2rem; + position: relative; + text-align: center; +} +.step .step-item:not(:first-child)::before { + background: #5764c6; + content: ""; + height: .2rem; + left: -50%; + position: absolute; + top: .9rem; + width: 100%; +} +.step .step-item a { + color: #888; + display: inline-block; + padding: 2rem 1rem 0; + text-decoration: none; +} +.step .step-item a::before { + background: #5764c6; + border: .2rem solid #fff; + border-radius: 50%; + content: ""; + display: block; + height: 1.2rem; + left: 50%; + position: absolute; + top: .4rem; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + width: 1.2rem; + z-index: 99; +} +.step .step-item.active a::before { + background: #fff; + border: .2rem solid #5764c6; +} +.step .step-item.active ~ .step-item::before { + background: #efefef; +} +.step .step-item.active ~ .step-item a::before { + background: #c5c5c5; +} +.tile { + -webkit-align-content: space-between; + align-content: space-between; + -webkit-align-items: flex-start; + align-items: flex-start; + display: flex; + display: -ms-flexbox; + display: -webkit-flex; + -ms-flex-align: start; + -ms-flex-line-pack: justify; + margin: 0; + padding: .5rem 0; +} +.tile .tile-icon { + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} +.tile .tile-content { + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} +.tile .tile-content:not(:first-child) { + padding-left: 1rem; +} +.tile .tile-content:not(:last-child) { + padding-right: 1rem; +} +.tile .tile-action { + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} +.tile .tile-title { + font-size: 1.6rem; + font-weight: 500; +} +.tile .tile-meta { + color: #888; + font-size: 1.3rem; +} +.tile.tile-centered { + -webkit-align-items: center; + align-items: center; + -ms-flex-align: center; + -ms-grid-row-align: center; +} +.tile.tile-centered .tile-content { + overflow: hidden; +} +.toast { + background: rgba(51, 51, 51, .9); + border: .1rem solid #333; + border-color: #333; + border-radius: .2rem; + color: #fff; + display: block; + padding: 1.4rem; + width: 100%; +} +.toast.toast-primary { + background: rgba(87, 100, 198, .9); + border-color: #5764c6; +} +.toast.toast-success { + background: rgba(50, 182, 67, .9); + border-color: #32b643; +} +.toast.toast-danger { + background: rgba(232, 86, 0, .9); + border-color: #e85600; +} +.toast a { + color: #fff; + text-decoration: underline; +} +.toast a:hover, +.toast a:focus, +.toast a:active { + opacity: .75; +} +.tooltip { + position: relative; +} +.tooltip::after { + background: rgba(51, 51, 51, .9); + border-radius: .2rem; + bottom: 100%; + color: #fff; + content: attr(data-tooltip); + display: block; + font-size: 1.2rem; + left: 50%; + line-height: 1.6rem; + max-width: 32rem; + opacity: 0; + overflow: hidden; + padding: .6rem 1rem; + pointer-events: none; + position: absolute; + text-overflow: ellipsis; + -webkit-transform: translate(-50%, 0); + -ms-transform: translate(-50%, 0); + transform: translate(-50%, 0); + transition: all .216s ease; + white-space: nowrap; + z-index: 99; +} +.tooltip:focus::after, +.tooltip:hover::after { + opacity: 1; + -webkit-transform: translate(-50%, -.5rem); + -ms-transform: translate(-50%, -.5rem); + transform: translate(-50%, -.5rem); +} +.tooltip[disabled], +.tooltip.disabled { + pointer-events: auto; +} +.tooltip.tooltip-right::after { + bottom: 50%; + left: 100%; + -webkit-transform: translate(0, 50%); + -ms-transform: translate(0, 50%); + transform: translate(0, 50%); +} +.tooltip.tooltip-right:focus::after, +.tooltip.tooltip-right:hover::after { + -webkit-transform: translate(.5rem, 50%); + -ms-transform: translate(.5rem, 50%); + transform: translate(.5rem, 50%); +} +.tooltip.tooltip-bottom::after { + bottom: auto; + top: 100%; + -webkit-transform: translate(-50%, 0); + -ms-transform: translate(-50%, 0); + transform: translate(-50%, 0); +} +.tooltip.tooltip-bottom:focus::after, +.tooltip.tooltip-bottom:hover::after { + -webkit-transform: translate(-50%, .5rem); + -ms-transform: translate(-50%, .5rem); + transform: translate(-50%, .5rem); +} +.tooltip.tooltip-left::after { + bottom: 50%; + left: auto; + right: 100%; + -webkit-transform: translate(0, 50%); + -ms-transform: translate(0, 50%); + transform: translate(0, 50%); +} +.tooltip.tooltip-left:focus::after, +.tooltip.tooltip-left:hover::after { + -webkit-transform: translate(-.5rem, 50%); + -ms-transform: translate(-.5rem, 50%); + transform: translate(-.5rem, 50%); +} +@-webkit-keyframes loading { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes loading { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-webkit-keyframes slide-down { + 0% { + opacity: 0; + -webkit-transform: translateY(-3rem); + transform: translateY(-3rem); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} +@keyframes slide-down { + 0% { + opacity: 0; + -webkit-transform: translateY(-3rem); + transform: translateY(-3rem); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} +.divider { + border-bottom: .1rem solid #efefef; + display: block; + margin: .5rem 0; +} +.loading { + color: transparent !important; + min-height: 1.6rem; + pointer-events: none; + position: relative; +} +.loading::after { + -webkit-animation: loading 500ms infinite linear; + animation: loading 500ms infinite linear; + border: .2rem solid #5764c6; + border-radius: .8rem; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1.6rem; + left: 50%; + margin-left: -.8rem; + margin-top: -.8rem; + position: absolute; + top: 50%; + width: 1.6rem; +} +.clearfix::after, +.container::after { + clear: both; + content: ""; + display: table; +} +.float-left { + float: left !important; +} +.float-right { + float: right !important; +} +.rel { + position: relative; +} +.abs { + position: absolute; +} +.fixed { + position: fixed; +} +.centered { + display: block; + float: none; + margin-left: auto; + margin-right: auto; +} +.mt-10 { + margin-top: 1rem; +} +.mr-10 { + margin-right: 1rem; +} +.mb-10 { + margin-bottom: 1rem; +} +.ml-10 { + margin-left: 1rem; +} +.mt-5 { + margin-top: .5rem; +} +.mr-5 { + margin-right: .5rem; +} +.mb-5 { + margin-bottom: .5rem; +} +.ml-5 { + margin-left: .5rem; +} +.pt-10 { + padding-top: 1rem; +} +.pr-10 { + padding-right: 1rem; +} +.pb-10 { + padding-bottom: 1rem; +} +.pl-10 { + padding-left: 1rem; +} +.pt-5 { + padding-top: .5rem; +} +.pr-5 { + padding-right: .5rem; +} +.pb-5 { + padding-bottom: .5rem; +} +.pl-5 { + padding-left: .5rem; +} +.block { + display: block; +} +.inline { + display: inline; +} +.inline-block { + display: inline-block; +} +.flex { + display: flex; + display: -ms-flexbox; + display: -webkit-flex; +} +.inline-flex { + display: inline-flex; + display: -ms-inline-flexbox; + display: -webkit-inline-flex; +} +.hide { + display: none !important; +} +.visible { + visibility: visible; +} +.invisible { + visibility: hidden; +} +.text-hide { + background: transparent; + border: 0; + color: transparent; + font-size: 0; + line-height: 0; + text-shadow: none; +} +.text-assistive { + border: 0; + clip: rect(0, 0, 0, 0); + height: .1rem; + margin: -.1rem; + overflow: hidden; + padding: 0; + position: absolute; + width: .1rem; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-normal { + font-weight: normal; +} +.text-bold { + font-weight: bold; +} +.text-italic { + font-style: italic; +} +.text-large { + font-size: 1.2em; +} +.text-ellipsis { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.text-clip { + overflow: hidden; + text-overflow: clip; + white-space: nowrap; +} +.text-break { + -webkit-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + word-break: break-word; + word-wrap: break-word; +} +.hand { + cursor: pointer; +} +.shadow { + box-shadow: 0 .1rem .4rem rgba(0, 0, 0, .3); +} +.light-shadow { + box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .15); +} +.rounded { + border-radius: .2rem; +} +.circle { + border-radius: 50%; +} \ No newline at end of file diff --git a/docs/elements.html b/docs/elements.html index f476084aa..8082ab78a 100644 --- a/docs/elements.html +++ b/docs/elements.html @@ -7,8 +7,8 @@ Elements - Spectre.css - - + + diff --git a/docs/index.html b/docs/index.html index 562bd9043..c3a7140f2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,8 +7,8 @@ Spectre.css - The lightweight, responsive and modern CSS framework - - + + diff --git a/docs/layout.html b/docs/layout.html index 722a1f48a..5c3b472ed 100644 --- a/docs/layout.html +++ b/docs/layout.html @@ -7,8 +7,8 @@ Layout - Spectre.css - - + + diff --git a/docs/utilities.html b/docs/utilities.html index da476eea8..dbeb98db4 100644 --- a/docs/utilities.html +++ b/docs/utilities.html @@ -7,8 +7,8 @@ Utilities - Spectre.css - - + + diff --git a/gulpfile.js b/gulpfile.js index a0846465d..798ced7d7 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -27,18 +27,12 @@ gulp.task('build', function() { }); gulp.task('docs', function() { - gulp.src('docs/**/*.less') + gulp.src(['./docs/css/*.less', './*.less']) .pipe(less({ plugins: [autoprefix] })) .pipe(csscomb()) - .pipe(cleancss()) - .pipe(rename({ - suffix: '.min' - })) - .pipe(gulp.dest(function(file) { - return file.base; - })) + .pipe(gulp.dest('./docs/css')) }); gulp.task('default', ['build']); diff --git a/index.html b/index.html deleted file mode 100644 index 0ef74b7d1..000000000 --- a/index.html +++ /dev/null @@ -1,3044 +0,0 @@ - - - - - - - - - Spectre.css - a lightweight, responsive and modern CSS framework - - - - - -
-
-

Spectre.css

-
-

Spectre.css is a lightweight, responsive and modern CSS framework for faster and extensible development.

-
    -
  • lightweight and clean starting point for your project and prototype
  • -
  • flexbox, responsive and mobile-friendly layout
  • -
  • carefully designed elements
  • -
  • built in useful components and utilities
  • -
  • responsive email templates soon
  • -
-
-
- -
-
-
-
-
-

getting started

-
-

There are 3 ways to get started with Spectre CSS framework in your projects. You can either manually install or use NPM and Bower.

-
Install manually
-

Download the compiled and minified Spectre CSS file (about 30KB):

-

Download Spectre.css

-
Install with NPM
- -
-$ npm install spectre.css --save
-
-
Install with Bower
- -
-$ bower install spectre.css --save
-
-

And include it in your website or Web app <head>

- -
-<link rel="stylesheet" href="dist/spectre.min.css" />
-
- -
-
- -
-

compiling custom version

-
-

Spectre uses Gulp for compiling CSS. You can customize your version of Spectre.css by editing LESS files in /src directory or removing unneeded components from spectre.less.

-

Then, you can build the CSS file from the command line:

-
    -
  1. Navigate to the root directory of Spectre where you can find package.json file.
  2. -
  3. Run npm install. NPM will install all dev dependencies as listed in package.json.
  4. -
  5. When completed, run gulp build to compile LESS to CSS and minify files.
  6. -
  7. You can find compiled CSS files in /dist directory.
  8. -
-

You can watch file changes and rebuild CSS files by using gulp watch.

-
-
- -
-
- -
-
- -
-
- -
-

typography

-
-

Typography sets default styles for headings, paragraphs, semantic text, blockquote, lists and code elements.

-
- -
headings
-

H1 Title 5rem

-

H2 Title 4rem

-

H3 Title 3rem

-

H4 Title 2.4rem

-
H5 Title 2rem
-
H6 Title 1.6rem
- - -
-<h1>H1 Title</h1>
-<h2>H2 Title <small class="label">4rem</small></h2>
-
- -
paragraphs
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent risus leo, dictum in vehicula sit amet, feugiat tempus tellus. Duis quis sodales risus. Etiam euismod ornare consequat.

-

Climb leg rub face on everything give attitude nap all day for under the bed. Chase mice attack feet but rub face on everything hopped up on goofballs.

- - -
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent risus leo, <a href="#">dictum in vehicula sit amet</a>, feugiat tempus tellus. Duis quis sodales risus. Etiam euismod ornare consequat.</p>
-
- -
semantic text elements
-
-
- I18N - <abbr> -
-
- Bold - <strong> <b> -
-
- Citation - <cite> -
-
- Hello World! - <code> -
-
- Deleted - <del> -
-
- Emphasis - <em> -
-
- Italic - <i> -
-
- Inserted - <ins> -
-
- Ctrl + S - <kbd> -
-
- Highlighted - <mark> -
-
- - 漢 kan - 字 ji - - <ruby> -
-
- Strikethrough - <s> -
-
- Sample - <samp> -
-
- Text Subscripted - <sub> -
-
- Text Superscripted - <sup> -
-
- - <time> -
-
- Underline - <u> -
-
- x = y + 2 - <var> -
-
- -
optimized for east asian fonts
-

你好, こんにちは, 안녕하세요

-
Chinese (Simplified)
-

革命不是请客吃饭,不是做文章,不是绘画绣花,不能那样雅致,那样从容不迫,“文质彬彬”,那样“温良恭俭让”。革命就是暴动,是一个阶级推翻一个阶级的暴烈的行动。

-
Chinese (Tranditional)
-

山不在高,有仙則名;水不在深,有龍則靈。斯是陋室,惟吾德馨。苔痕上階綠,草色入簾青;談笑有鴻儒,往來無白丁。可以調素琴,閱金經。無絲竹之亂耳,無案牘之勞形。南陽諸葛廬,西蜀子雲亭。孔子云:「何陋之有?」

-
Japanese
-

祇園精舎の鐘の声、諸行無常の響きあり。沙羅双樹の花の色、盛者必衰の理をあらはす。おごれる人も久しからず。ただ春の夜の夢のごとし。たけき者も遂にはほろびぬ、ひとへ‌​に風の前の塵に同じ。

-
Korean
-

나라말이 중국과 달라, 한문・한자와 서로 통하지 아니하므로, 어리석은 백성들이 말하고자 하는 바가 있어도, 끝내 제 뜻을 펴지 못하는 사람이 많다. 내가 이를 불쌍히 여겨, 새로 스물 여덟 글자를 만드니, 사람마다 하여금 쉽게 익혀, 날마다 씀에 편하게 하고자 할 따름이다.

- -
-

Use the attribute lang or add the class cjk to the container element to have better Asian CJK (Chinese, Japanese and Korean) support.

-
- - -
-<p class="cjk">祇園精舎の鐘の声、諸行無常の響きあり。……</p>
-<p lang="ja">祇園精舎の鐘の声、諸行無常の響きあり。……</p>
-
- -
blockquote
-
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

- - Source -
- - -
-<blockquote>
-    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
-    <cite>- Source</cite>
-</blockquote>
-
- -
lists
-
-
-
    -
  • list item 1
  • -
  • list item 2 -
      -
    • list item 2.1
    • -
    • list item 2.2
    • -
    • list item 2.3
    • -
    -
  • -
  • list item 3
  • -
-
-
-
    -
  1. list item 1
  2. -
  3. list item 2 -
      -
    1. list item 2.1
    2. -
    3. list item 2.2
    4. -
    5. list item 2.3
    6. -
    -
  4. -
  5. list item 3
  6. -
-
-
-
-
description list term 1
-
description list description 1
-
description list term 2
-
description list description 2
-
description list term 3
-
description list description 3
-
-
-
- - -
-<!-- unordered list -->
-<ul>
-    <li>list item 1</li>
-    <li>list item 2
-        <ul>
-            <li>list item 2.1</li>
-            <li>list item 2.2</li>
-            <li>list item 2.3</li>
-        </ul>
-    </li>
-    <li>list item 3</li>
-</ul>
-
-<!-- description list -->
-<dl>
-    <dt>description list term</dt>
-    <dd>description list description</dd>
-</dl>
-
- -
- -
-

tables

-
-

Tables include default styles for tables and data sets.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
namedurationgenrerelease date
The Shawshank Redemption2h 22minCrime, Drama14 October 1994 USA
The Godfather2h 55minCrime, Drama24 March 1972 USA
Schindler's List3h 15minBiography, Drama, History4 February 1994 USA
Se7en2h 7minCrime, Drama, Mystery22 September 1995 USA
-
-

Add the class table to any <table> element. The class will add padding, border and emphasized table header. Use table-striped to <table> to add zebra striped style. For hoverable table rows, you can add the class table-hover to enable hover style.

-

Use the class selected to make <tr> element highlighted.

-
- - -
-<table class="table table-striped table-hover">
-    <thead>
-        <tr>
-            <th>name</th>
-            <th>duration</th>
-            <th>genre</th>
-            <th>release date</th>
-        </tr>
-    </thead>
-    <tbody>
-        <tr class="selected">
-            <td>The Shawshank Redemption</td>
-            <td>2h 22min</td>
-            <td>Crime, Drama</td>
-            <td>14 October 1994</td>
-        </tr>
-    </tbody>
-</table>
-
- -
- -
-

buttons

-
-

Buttons include simple button styles for actions in different types and sizes.

-
- -
-
- - -
-
- - -
-
- - -
-
-
-

Add the class btn to <a>, <input> or <button> elements for a default button. There are classes btn-primary and btn-link for predefined primary and link buttons. A button with the class loading can show loading indicator.

-
- - -
-<button class="btn">default button</button>
-<button class="btn btn-primary">primary button</button>
-<button class="btn btn-link">link button</button>
-
-<!-- a button with loading state -->
-<button class="btn loading">button</button>
-
- -
-

Add the class disabled or the attribute disabled for a disabled button.

-
- -
-
- -
-
- -
-
- -
-
- -
button sizes
- -
-
- - - -
-
- -
-
-
-

Add the class btn-sm or btn-lg for small or large button size. Also, you can add the class btn-block for a full-width button.

-
- - -
-<button class="btn btn-lg">large button</button>
-<button class="btn btn-sm">small button</button>
-
-<button class="btn btn-block">block button</button>
-
- -
-
- - - -
-
-
-

Icons with the class icon can be correctly rendered in each button size.

-
- - -
-<button class="btn btn-primary btn-lg"><i class="icon icon-markunread"></i> large</button>
-<button class="btn btn-primary"><i class="icon icon-markunread"></i> normal</button>
-<button class="btn btn-primary btn-sm"><i class="icon icon-markunread"></i> small</button>
-
- -
button groups
-
-
-
- - - -
-
-
-
- - - -
-
-
-
-
-
- - - -
-
-
-
- - - -
-
-
-
-

If you want to use buttons as a group, add the class btn-group to the container. You can add the class btn-group-block for a full-width button group.

-
- - -
-<div class="btn-group btn-group-block">
-    <button class="btn">first button</button>
-    <button class="btn">second button</button>
-    <button class="btn">third button</button>
-</div>
-
- -
- -
-

forms

-
-

Forms provide the most common control styles used in forms, including label, input, textarea, select, checkbox, radio and switch.

-
-
-
-
-
- - -
-
- - -
-
- - - -
-
- -
-
- -
-
- - -
-
- -
-
- - -
-
-
-
- - -
-<form>
-    <!-- form input control -->
-    <div class="form-group">
-        <label class="form-label" for="input-example-1">Name</label>
-        <input class="form-input" type="text" id="input-example-1" placeholder="Name" />
-    </div>
-    <!-- form radio control -->
-    <div class="form-group">
-        <label class="form-label">Gender</label>
-        <label class="form-radio">
-            <input type="radio" name="gender" />
-            <i class="form-icon"></i> Male
-        </label>
-        <label class="form-radio">
-            <input type="radio" name="gender" checked />
-            <i class="form-icon"></i> Female
-        </label>
-    </div>
-    <!-- form select control -->
-    <div class="form-group">
-        <select class="form-select">
-            <option>Choose an option</option>
-            <option>Slack</option>
-            <option>Skype</option>
-            <option>Hipchat</option>
-        </select>
-    </div>
-    <!-- form switch control -->
-    <div class="form-group">
-        <label class="form-switch">
-            <input type="checkbox" />
-            <i class="form-icon"></i> Send me emails with news and tips
-        </label>
-    </div>
-    <!-- form textarea control -->
-    <div class="form-group">
-        <label class="form-label" for="input-example-3">Message</label>
-        <textarea class="form-input" id="input-example-3" placeholder="Textarea" rows="3"></textarea>
-    </div>
-    <!-- form checkbox control -->
-    <div class="form-group">
-        <label class="form-checkbox">
-            <input type="checkbox" />
-            <i class="form-icon"></i> Remember me
-        </label>
-    </div>
-</form>
-
- -
-

You can use :indeterminate pseudo class for indeterminate state of checkboxes.

-

If you want to have a horizontal form, add the class form-horizontal to the <form> container. And add the class col-[1-12] to the child elements for form row layout.

-
- -
-
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- - -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
- -
-
- -
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
- - -
-<form class="form-horizontal">
-    <div class="form-group">
-        <div class="col-3">
-            <label class="form-label" for="input-example-1">Name</label>
-        </div>
-        <div class="col-9">
-            <input class="form-input" type="text" id="input-example-1" placeholder="Name" />
-        </div>
-    </div>
-    <!-- form structure -->
-</form>
-
- -
-
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
-
- -
-

To use form validation styles, add is-success and is-danger to the controls or add has-success and has-danger to parent elements. You can use the class form-input-hint to provide form validation success and error messages.

-
- -
-
-
- - -

The name is invaild.

-
-
- - -

The email is available.

-
-
-
-
-
-
- -

The option is invaild.

-
-
- -

The option is available.

-
-
-
- - -
-<form>
-    <!-- form validation class: has-success -->
-    <div class="form-group has-success">
-        <label class="form-label" for="input-example-1">Name</label>
-        <input class="form-input" type="text" id="input-example-1" placeholder="Name" />
-        <p class="form-input-hint">The name is invaild.</p>
-    </div>
-
-    <!-- form validation class: is-success -->
-    <div class="form-group">
-        <label class="form-label" for="input-example-1">Name</label>
-        <input class="form-input is-success" type="text" id="input-example-1" placeholder="Name" />
-        <p class="form-input-hint">The name is invaild.</p>
-    </div>
-</form>
-
- -
-

For smaller or larger input and select controls, you could add input-sm/input-lg and select-sm/select-lg to the elements.

-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
input groups
-
-
-
- slack.com/ - -
-
-
-
- - @slack.com -
-
-
-
- slack.com/ - - -
-
-
-
-
-
- slack.com/ - -
-
-
-
- - @slack.com -
-
-
-
- slack.com/ - - -
-
-
-
-
-
- slack.com/ - -
-
-
-
- - @slack.com -
-
-
-
- slack.com/ - - -
-
-
-
-

If you want to attach text and button along with an input, add the class input-group to the input container. And add the class input-group-addon to the text element and input-group-btn to the button element.

-
- - -
-<!-- normal input group -->
-<div class="input-group">
-    <span class="input-group-addon">slack.com/</span>
-    <input type="text" class="form-input" placeholder="site name" />
-</div>
-
-<!-- large input group -->
-<div class="input-group">
-    <span class="input-group-addon addon-lg">slack.com/</span>
-    <input type="text" class="form-input input-lg" placeholder="site name" />
-</div>
-
-<!-- normal input group with button -->
-<div class="input-group">
-    <span class="input-group-addon">slack.com/</span>
-    <input type="text" class="form-input" placeholder="site name" />
-    <button class="btn btn-primary input-group-btn">Submit</button>
-</div>
-
- -
- -
-

labels

-
-

Labels are formatted text tags for highlighted, informative information.

-
-
-
- default label - primary label - success label - danger label -
-
-
-

Add the class label to <span> or <small> elements. You can add another class label-primary, label-success and label-danger for a primary colored label.

-
- - -
-<span class="label">default label</span>
-<span class="label label-primary">primary label</span>
-
- -
- -
-

media

-
-

Media include responsive images, figures and video classes.

-

Add the class img-responsive to <img> elements. The images will scale with the parent sizes.

-
-
-
- -
-
- -
-

You can use the element <figure> for an image with a caption. Add the class figure to <figure> element. The images with the class img-responsive will be responsive. And the included class figure-caption will provide basic style for caption. Also, you can use text-left, text-center and text-right for caption alignment.

-
-
-
-
- -
macOS Yosemite wallpaper
-
- -
-
- -
-

For responsive video, add a container with the class video-responsive. Insert any YouTube, Youku or other iframe/embed video inside the container. The ratio is 16:9 by default. You may add video-responsive-4-3 for 4:3 ratio video container or video-responsive-1-1 for 1:1 ratio.

-
-
-
-
- -
-
-
- - -
-<img src="img/osx-el-capitan.jpg" class="img-responsive rounded" />
-
-<figure class="figure">
-    <img src="img/osx-yosemite-2.jpg" class="img-responsive rounded" />
-    <figcaption class="figure-caption text-center">macOS Yosemite wallpaper</figcaption>
-</figure>
-
-<div class="video-responsive">
-    <iframe src="https://www.youtube.com/embed/BzMLA8YIgG0; width="560" height="315" frameborder="0" allowfullscreen></iframe>
-</div>
-
- -
- -
-
- -
-
- -
-
- -
-

flexbox grid

-
-

Layout includes flexbox based responsive grid system with 12 columns.

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
col-12 (100%)
-
-
-
-
-
col-9 (75%)
-
-
-
-
-
col-6 (50%)
-
-
-
-
-
col-3 (25%)
-
-
- -
-

Add the class columns to a container with the class container. And add any element you want with classname column inside the container. These columns will take up the space equally. You can specific the width of each column by adding class col-[1-12].

-

And you can add the class col-gapless to have gapless columns.

-
- -
-
-
col-6 (gapless)
-
-
-
col-6 (gapless)
-
-
- -
-

By default, Spectre grid has multi-line flexbox enabled. You can add the class col-oneline to columns to make all its child columns positioned in the same single row.

-
- -
-
-
col-8
-
-
-
col-8
-
-
- - -
-<div class="container">
-    <div class="columns">
-        <div class="column col-6">col-6</div>
-        <div class="column col-3">col-3</div>
-        <div class="column col-2">col-2</div>
-        <div class="column col-1">col-1</div>
-    </div>
-
-    <div class="columns col-gapless">
-        <div class="column col-6">col-6</div>
-        <div class="column col-6">col-6</div>
-    </div>
-</div>
-
- -
- -
-

responsive grid

-
-
-
col-md-6
-
-
-
col-md-3
-
-
-
col-md-3
-
-
- -
-
-
col-sm-6
-
-
-
col-sm-3
-
-
-
col-sm-3
-
-
- -
-
-
col-xs-6
-
-
-
col-xs-3
-
-
-
col-xs-3
-
-
- -
-

Spectre provides a neat responsive layout grid system. There are .col-xs-[1-12], .col-sm-[1-12], .col-md-[1-12], .col-lg-[1-12] and .col-xl-[1-12] available for flexible grid across mobile, tablet and desktop viewport usage.

-
    -
  • For window width less than 480px, all columns will show as a single row.
  • -
  • col-xs-[1-12] apply to window width smaller than or equal to 480px.
  • -
  • col-sm-[1-12] apply to window width smaller than or equal to 600px.
  • -
  • col-md-[1-12] apply to window width smaller than or equal to 840px.
  • -
  • col-lg-[1-12] apply to window width smaller than or equal to 960px.
  • -
  • col-xl-[1-12] apply to window width smaller than or equal to 1280px.
  • -
-
- - -
-<div class="container">
-    <div class="columns">
-        <div class="column col-xs-6">col-xs-6</div>
-        <div class="column col-xs-3">col-xs-3</div>
-        <div class="column col-xs-3">col-xs-3</div>
-    </div>
-</div>
-
- -
-

For hiding elements on specific viewport sizes, there are classes .hide-xs, .hide-sm, .hide-md, .hide-lg and .hide-xl available.

-
    -
  • hide-xs hides elements when the window width is smaller than or equal to 480px.
  • -
  • hide-sm hides elements when the window width is smaller than or equal to 600px.
  • -
  • hide-md hides elements when the window width is smaller than or equal to 840px.
  • -
  • hide-lg hides elements when the window width is smaller than or equal to 960px.
  • -
  • hide-xl hides elements when the window width is smaller than or equal to 1280px.
  • -
-

Spectre also has a responsive web test tool Responsive Resizer. You can use it locally in the directory /tools/resizer or online.

-

Responsive Resizer

-
-
- - - -
-

empty states / blank slates

-
-

Empty states/blank slates are commonly used as placeholders for first time use, empty data and error screens.

-
-
-
-
- -

You have no new messages

-

Click the button to start a conversation.

- -
-
-
-
- -

You are not following anyone

-
- - -
-
-
-
- -
-

An empty state component can include icons, messages(title and meta messages) and action buttons or any combination of those elements. Add empty-title, empty-meta or empty-action to the elements. HTML structure is exampled below.

-
- - -
-<div class="empty">
-    <i class="icon icon-people"></i>
-    <p class="empty-title">You have no new messages</p>
-    <p class="empty-meta">Click the button to start a conversation.</p>
-    <button class="empty-action btn btn-primary">Send a message</button>
-</div>
-
- -
- -
-
- -
-
- -
-
- -
-

avatars

-
-

Avatars are user profile pictures.

-
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
-
-
-
-
-
-
- -
-

Add the class avatar to <img> element. There are 4 additional sizes available, including avatar-xl (64px), avatar-lg (48px), avatar-sm (24px), and avatar-xs (16px). By default, the avatar size is 32px.

-

For users who don't have profile pictures, you may use their initials for avatars. Add the class avatar and avatar size class to <div> element. The attribute data-initial is the name appear inside the avatar.

-
- -
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- - -
-<!-- Basic avatar examples -->
-<figure class="avatar avatar-xl">
-    <img src="img/avatar-1.png" />
-</figure>
-
-<figure class="avatar avatar-xl">
-    <img src="img/avatar-1.png" />
-    <img src="img/avatar-5.png" class="avatar-icon" />
-</figure>
-
-<figure class="avatar avatar-xl" data-initial="YZ" style="background-color: #5764c6;"></figure>
-
-<!-- Show initals when avatar image is unavailable or not fully loaded -->
-<figure class="avatar avatar-xl" data-initial="YZ" style="background-color: #5764c6;">
-    <img src="img/avatar-1.png" />
-</figure>
-
- -
- -
-

chips

-
-

Chips are complex entities in small blocks.

-
-
-
-
- Crime - -
-
- Drama - -
-
- Biography - -
-
- Mystery - -
-
-
-
-
- Tony Stark - -
-
- - Thor Odinson - -
-
- - Steve Rogers -
-
-
- -
-

Add a container element with the class chip-sm. And add child text element, buttons or avatars with the class avatar.

-
- -
-
-
-
- -
-
-
Tony Stark
-
Iron man
-
-
- -
-
-
-
- - -
-<div class="chip-sm">
-    Crime
-    <button class="btn btn-clear"></button>
-</div>
-
-<div class="chip-sm">
-    <img src="img/avatar-1.png" class="avatar" />
-    Yan Zhu
-    <button class="btn btn-clear"></button>
-</div>
-
- -
- -
-

autocomplete

-
-

Autocomplete form component provides suggestions while you type. It is often used for tags and contacts input.

-
-
-
-
-
-
-
-
- Tony Stark - -
-
- - Thor Odinson - -
-
- - Steve Rogers - -
-
- Bruce Banner - -
-
- Natasha Romanoff - -
- -
-
-
-
-
-
-
- Tony Stark - -
-
- Thor Odinson - -
-
- Steve Rogers - -
-
- Bruce Banner - -
-
- Natasha Romanoff - -
- -
-
-
-
-
-
-
-
-
- Bruce Banner - -
-
- - Thor Odinson - -
- -
- -
-
-
-
-
-

Add a container element with the class form-autocomplete. There are 2 parts of it, one is form-autocomplete-input, another is menu component. Spectre.css does not include JavaScript code, you will need to implement your JS to interact with the autocomplete.

-

The autocomplete HTML structure is exampled below.

-
- - -
-<div class="form-autocomplete">
-    <!-- autocomplete input container -->
-    <div class="form-autocomplete-input">
-        <!-- autocomplete chips -->
-        <div class="chip-sm">
-            <img src="img/avatar-1.png" class="avatar" />
-            Yan Zhu
-            <button class="btn btn-clear"></button>
-        </div>
-        <div class="chip-sm selected">
-            <img src="img/avatar-2.png" class="avatar" />
-            Yan Zhu
-            <button class="btn btn-clear"></button>
-        </div>
-        <!-- autocomplete real input box -->
-        <input class="form-input" type="text" placeholder="typing here" />
-    </div>
-    <!-- autocomplete suggestion list -->
-    <ul class="menu">
-        <!-- menu list chips -->
-        <li class="menu-item">
-            <a href="#">
-                <div class="chip">
-                    <div class="chip-icon">
-                        <img src="img/avatar-4.png" class="avatar" />
-                    </div>
-                    <div class="chip-content">
-                        Steve Rogers
-                    </div>
-                </div>
-            </a>
-        </li>
-        <li class="menu-item">
-            <a href="#">
-                <div class="chip">
-                    <div class="chip-icon">
-                        <img src="img/avatar-3.png" class="avatar" />
-                    </div>
-                    <div class="chip-content">
-                        Yan Zhu
-                    </div>
-                </div>
-            </a>
-        </li>
-    </ul>
-</div>
-
- -
- -
-

tooltips

-
-

Tooltips provide context information labels that appear on hover and focus.

-
-
-
- -
-
- -
-
- -
-
- -
-
-
-

Tooltip component is built entirely in CSS.

-

Add the class tooltip and the attribute data-tooltip, which contains the tooltip content, to non self closing elements. And add the class name tooltip-right, tooltip-bottom or tooltip-left to define the position of a tooltip. By default, the tooltip appears above the element.

-
- - -
-<button class="btn tooltip" data-tooltip="Lorem ipsum dolor sit amet">top tooltip</button>
-<button class="btn tooltip tooltip-right" data-tooltip="Lorem ipsum dolor sit amet">right tooltip</button>
-
- -
- -
-

badges

-
-

Badges are often used as unread number indicators.

-
-
-
- - Notifications - -
-
- - Notifications - -
-
- - Notifications - -
-
- - Notifications - -
-
-
-

Add the class badge to non self closing elements. And add the attribute data-badge to define the content of a badge. The badge will appear in the top-right direction of the element.

-
- - -
-<span class="badge" data-badge="99">
-    Notifications
-</span>
-
- -
- -
-

toasts

-
-

Toasts are used to show alert or information to users.

-
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. -
-
-
-
-

Add a container element with the class toast. You can add any text within the container, and even icons. You may also add a close button with the class btn-clear if you need.

-
-
-
-
- - Lorem ipsum dolor sit amet, consectetur adipiscing elit. -
-
-
-
- - Lorem ipsum dolor sit amet, consectetur adipiscing elit. -
-
-
-
- - Lorem ipsum dolor sit amet, consectetur adipiscing elit. -
-
-
-
-

And you can add the class toast-primary, toast-success or toast-danger for additional toast colors.

-
- - -
-<div class="toast">
-    <button class="btn btn-clear float-right"></button>
-    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-</div>
-
-<div class="toast toast-primary">
-    <button class="btn btn-clear float-right"></button>
-    <i class="icon icon-error_outline"></i>
-    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-</div>
-
- -
- - - - - - - -
-

modals

-
-

Modals are flexible dialog prompts.

-
-
-
- -
-
-
-

Add a container element with the class modal. And add a real container modal-container and overlay modal-overlay inside it. You can add child elements with the class name modal-header, modal-content and modal-footer - any or all of them.

-

Spectre.css does not include JavaScript code, you will need to implement your JS to interact with modals. To make a modal appear, add the class active to the modal container

-
- - -
-<div class="modal active">
-    <div class="modal-overlay"></div>
-    <div class="modal-container">
-        <div class="modal-header">
-            <button class="btn btn-clear float-right"></button>
-            <div class="modal-title">Modal title</div>
-        </div>
-        <div class="modal-body">
-            <div class="content">
-                <!-- content here -->
-            </div>
-        </div>
-        <div class="modal-footer">
-            <button class="btn btn-link">Close</button>
-            <button class="btn btn-primary">Share</button>
-        </div>
-    </div>
-</div>
-
- -
modal sizes
-
-
- -
-
- -
-
-
-

Add the class modal-sm for a smaller modal dialog.

-
- - -
-<div class="modal modal-sm">
-    <div class="modal-overlay"></div>
-    <div class="modal-container">
-        <!-- modal structure here -->
-    </div>
-</div>
-
- -
- -
-

cards

-
-

Cards are flexible content containers.

-
-
-
-
-
- -
-
-

Microsoft

-
Software and hardware
-
-
- Empower every person and every organization on the planet to achieve more. -
- -
-
-
-
-
-

Apple

-
Hardware and software
-
-
- -
-
- To make a contribution to the world by making tools for the mind that advance humankind. -
- -
-
-
-
-
-

Google

-
Software and hardware
-
-
- Organize the world’s information and make it universally accessible and useful. -
-
- -
- -
-
-
-
-
-
-
- -
- -
- Surface Studio. Turn your desk into a Studio. Surface Studio is designed for the creative process. -
- -
-
-
-
-
-

Apple

-
Hardware and software
-
-
- To make a contribution to the world by making tools for the mind that advance humankind. -
-
- -
-
-
-
-
-
-

Google I/O

-
-
- An immersive, three-day experience focused on exploring the next generation of technology, mobile and beyond. -
- -
-
-
-
-

Add a container element with the class card. And add child elements with the class name card-image, card-header, card-content and/or card-footer. The card-image can be placed in any position.

-
- - -
-<div class="card">
-    <div class="card-image">
-        <img src="img/osx-el-capitan.jpg" class="img-responsive" />
-    </div>
-    <div class="card-header">
-        <h4 class="card-title">Microsoft</h4>
-        <h6 class="card-meta">Software and hardware</h6>
-    </div>
-    <div class="card-body">
-        To make a contribution to the world by making tools for the mind that advance humankind.
-    </div>
-    <div class="card-footer">
-        <button class="btn btn-primary">Do</button>
-    </div>
-</div>
-
- -
- -
-
- -
-
- -
-
- -
-
-

Position utilities are used for useful layout and position things, including clearfix, float, position and margin/padding utilities.

-
- - -
-<!-- clear float -->
-<div class="clearfix"></div>
-<!-- float: left and right -->
-<div class="float-left"></div>
-<div class="float-right"></div>
-<!-- position: relative, absolute and fixed -->
-<div class="rel"></div>
-<div class="abs"></div>
-<div class="fixed"></div>
-<!-- centered block -->
-<div class="centered"></div>
-<!-- margin: 10px and 5px in 4 directions. mt-10 = margin-top: 10px; -->
-<div class="mt-10"></div>
-<div class="mt-5"></div>
-<!-- padding: 10px and 5px in 4 directions. pt-10 = padding-top: 10px; -->
-<div class="pt-10"></div>
-<div class="pt-5"></div>
-
- -
- -
-
-

Display utilities are used for display and hidden things.

-
- - -
-<!-- display: block; -->
-<div class="block"></div>
-<!-- display: inline; -->
-<div class="inline"></div>
-<!-- display: inline-block; -->
-<div class="inline-block"></div>
-<!-- display: flex; -->
-<div class="flex"></div>
-<!-- display: inline-flex; -->
-<div class="inline-flex"></div>
-<!-- display: none; -->
-<div class="hide"></div>
-<!-- visibility: visible; -->
-<div class="visible"></div>
-<!-- visibility: hidden; -->
-<div class="invisible"></div>
-<!-- hide text contents -->
-<div class="text-hide"></div>
-
- -
- -
-
-

Text utilities are used for text alignment, styles and overflow things.

-
- - -
-<!-- left-aligned text -->
-<div class="text-left"></div>
-<!-- center-aligned text -->
-<div class="text-center"></div>
-<!-- right-aligned text -->
-<div class="text-right"></div>
-<!-- justified text -->
-<div class="text-justify"></div>
-
-<!-- Lowercased text -->
-<div class="text-lowercase"></div>
-<!-- Uppercased text -->
-<div class="text-uppercase"></div>
-<!-- Capitalized text -->
-<div class="text-capitalize"></div>
-
-<!-- Normal weight text -->
-<div class="text-normal"></div>
-<!-- Bold text -->
-<div class="text-bold"></div>
-<!-- Italicized text -->
-<div class="text-italic"></div>
-<!-- Larger text (120%) -->
-<div class="text-large"></div>
-
-<!-- Overflow behavior: display an ellipsis to represent clipped text -->
-<div class="text-ellipsis"></div>
-<!-- Overflow behavior: truncate the text -->
-<div class="text-clip"></div>
-<!-- Text may be broken at arbitrary points -->
-<div class="text-break"></div>
-
- -
- -
-
-

Shape utilities are used for change element shapes.

-
- - -
-<!-- rounded element -->
-<div class="rounded"></div>
-<!-- circle element -->
-<div class="circle"></div>
-
- -
- -
-
-

A Divider is used for separating elements.

-
-
-
-
-
-
- - -
-<!-- divider element -->
-<div class="divider"></div>
-
- -
- -
-
-

Loading indicator is used for loading or updating. Also, you can add the class loading to buttons for loading status.

-
-
-
-
-
-
- -
-<!-- loading element -->
-<div class="loading"></div>
-
- -
-
- - - -