UNPKG

soft-ui-library

Version:

A Collection of UI Elements implementing a neumorphic design pattern with light/dark mode toggle.

397 lines (370 loc) 11.7 kB
@charset "UTF-8"; @import "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css"; @import url("https://fonts.googleapis.com/css?family=Rubik|Poppins:300&display=swap"); :root { --ruler: 13px; --transition: all 0.25s ease-in-out; --main-font: "Rubik", sans-serif; --main-font: "Poppins", "Rubik", sans-serif; } .light-mode { --primary-color: #0097e6; --color-bg: #ebecf0; --color-white: #fff; --color-shadow: rgba(186, 190, 204, 0.9); --main-text-color: #333; --text-field-radius: calc(var(--ruler) * 1); --check-radio-color: var(--primary-color); } .dark-mode { --primary-color: #0086cc; --color-bg: #333333; --color-white: #3b3b3b; --color-shadow: #2b2b2b; --main-text-color: #aaa; --text-field-radius: calc(var(--ruler) * 1); --check-radio-color: var(--primary-color); } /********************************************* COMMON PROPERTIES *********************************************/ .sul-btn, .sul-text-field, .sul-checkbox-type-1, .sul-checkbox-type-2, .sul-radio, .sul-select { -webkit-appearance: none; appearance: none; border: 0; outline: 0; transition: var(--transition); color: var(--main-text-color); } /******************************************** TEXT FIELDS & BUTTONS ********************************************/ .sul-btn, .sul-text-field { font-size: 16px; border-radius: var(--text-field-radius); padding: calc(var(--ruler) + 5px); background: var(--color-bg); width: 100%; } .sul-btn::placeholder, .sul-text-field::placeholder { color: var(--main-text-color); opacity: 0.5; } /************************************************* TEXT FIELDS *************************************************/ .sul-text-field { box-shadow: inset 2px 2px 5px var(--color-shadow), inset -5px -5px 10px var(--color-white); } .sul-text-field:focus { box-shadow: inset 1px 1px 2px var(--color-shadow), inset -1px -1px 2px var(--color-white); } /************************************************** BUTTONS **************************************************/ .sul-btn { display: block; box-shadow: -5px -5px 20px var(--color-white), 5px 5px 20px var(--color-shadow); text-align: center; width: auto; } .sul-btn:hover { box-shadow: -2px -2px 5px var(--color-white), 2px 2px 5px var(--color-shadow); } .sul-btn:active { box-shadow: inset 1px 1px 2px var(--color-shadow), inset -1px -1px 2px var(--color-white); } .sul-btn i { margin-right: 5px; } .sul-btn.btn-primary { background: var(--primary-color); color: #eee; } .sul-btn .btn-block { width: 100%; } /******************************************** BUTTONS, CHECKBOX & RADIO ******************************************/ .sul-btn, .sul-radio, .sul-checkbox-type-1, .sul-checkbox-type-2 { cursor: pointer; } /*********************************************** CHECKBOX & RADIO ***********************************************/ .sul-radio, .sul-checkbox-type-1 { box-shadow: 2px 2px 4px var(--color-shadow), -2px -2px 4px var(--color-white); max-width: calc(var(--ruler) * 2.5); max-height: calc(var(--ruler) * 2.5); min-width: calc(var(--ruler) * 2.5); min-height: calc(var(--ruler) * 2.5); background: transparent; margin-right: 10px; display: inline-flex; justify-content: center; align-items: center; } .sul-radio::before, .sul-checkbox-type-1::before { transition: var(--transition); font-family: "Font Awesome 5 Free"; font-size: calc(var(--ruler) * 1.5); font-weight: bolder; text-shadow: -3px -3px 5px var(--color-shadow), 3px 3px 5px var(--color-white); color: var(--color-bg); } .sul-radio:checked, .sul-checkbox-type-1:checked { box-shadow: -3px -3px 5px var(--color-shadow), 3px 3px 5px var(--color-white); } .sul-radio:checked::before, .sul-checkbox-type-1:checked::before { text-shadow: 3px 3px 5px var(--color-shadow), -3px -3px 5px var(--color-white); color: var(--check-radio-color); } .sul-radio:disabled, .sul-checkbox-type-1:disabled { box-shadow: -3px -3px 5px var(--color-shadow), 3px 3px 5px var(--color-white); } .sul-radio:disabled::before, .sul-checkbox-type-1:disabled::before { text-shadow: 3px 3px 5px var(--color-shadow), -3px -3px 5px var(--color-white); color: var(--color-bg); } /***************************************************** CHECKBOX *************************************************/ .sul-checkbox-type-1 { border-radius: calc(var(--ruler) * 1); } .sul-checkbox-type-1::before, .sul-checkbox-type-1:checked::before, .sul-checkbox-type-1:disabled { content: ""; } /***************************************************** RADIO *****************************************************/ .sul-radio { border-radius: 50%; } .sul-radio::before, .sul-radio:checked::before, .sul-radio:disabled { content: ""; } /***************************************************** SELECT *****************************************************/ .sul-select-wrapper { position: relative; } .sul-select-wrapper::after { transition: var(--transition); font-family: "Font Awesome 5 Free"; content: ""; font-size: calc(var(--ruler) * 3); font-weight: bolder; text-shadow: 1px 1px 2px var(--color-shadow), -1px -1px 2px var(--color-white); color: var(--check-radio-color); position: absolute; right: 20px; top: 5%; z-index: 1; } .sul-select-wrapper .sul-select { position: relative; z-index: 2; font-size: 16px; border-radius: var(--text-field-radius); padding: var(--ruler); background: var(--color-bg); width: 100%; box-shadow: inset 0 0 0 transparent, inset 0 0 0 transparent, 2px 2px 3px var(--color-shadow), -2px -2px 3px var(--color-white); transition: var(--transition); } .sul-select-wrapper .sul-select:focus { box-shadow: inset 2px 2px 3px var(--color-shadow), inset -2px -2px 3px var(--color-white); } .sul-select-wrapper .sul-select option { background: var(--color-bg); } /***************************************************** CHECKBOX TYPE 2 *****************************************/ .sul-checkbox-type-2 { border-radius: calc(var(--ruler) * 1); box-shadow: inset 2px 2px 4px var(--color-shadow), inset -2px -2px 4px var(--color-white); max-width: 50px; min-width: 50px; max-height: 25px; min-height: 25px; background: var(--color-bg); margin-right: 10px; display: inline-flex; justify-content: center; align-items: center; } .sul-checkbox-type-2::before { transition: var(--transition); font-family: "Font Awesome 5 Free"; content: ""; font-size: calc(var(--ruler) * 2.5); font-weight: bolder; text-shadow: 2px 2px 3px var(--color-shadow), -2px -2px 3px var(--color-white); color: var(--color-bg); position: relative; left: -15px; } .sul-checkbox-type-2:checked { box-shadow: inset 2px 2px 4px var(--primary-color), inset -2px -2px 4px var(--primary-color); background: var(--primary-color); max-width: 50px; min-width: 50px; max-height: 25px; min-height: 25px; } .sul-checkbox-type-2:checked::before { left: 15px; } /***************************************************** RANGE *****************************************************/ .sul-range { -webkit-appearance: none; width: 100%; height: calc(var(--ruler) * 2.5); background: var(--color-bg); outline: none; border-radius: calc(var(--ruler) * 1); box-shadow: inset 2px 2px 3px var(--color-shadow), inset -2px -2px 3px var(--color-white); } .sul-range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; } .sul-range::-webkit-slider-thumb { min-width: calc(var(--ruler) * 3.5); min-height: calc(var(--ruler) * 3.5); max-width: calc(var(--ruler) * 3.5); max-height: calc(var(--ruler) * 3.5); border: none; border-radius: 50%; box-shadow: 2px 2px 3px var(--color-shadow), -2px -2px 3px var(--color-white); background: var(--color-bg); cursor: pointer; } .sul-range::-moz-range-thumb { min-width: calc(var(--ruler) * 3.5); min-height: calc(var(--ruler) * 3.5); max-width: calc(var(--ruler) * 3.5); max-height: calc(var(--ruler) * 3.5); border: none; border-radius: 50%; box-shadow: 2px 2px 3px var(--color-shadow), -2px -2px 3px var(--color-white); background: var(--color-bg); cursor: pointer; } .with-hover { transition: var(--transition); } .sul-box-raised-1 { background-color: var(--color-bg); box-shadow: -5px -5px 20px var(--color-white), 5px 5px 20px var(--color-shadow); /*********************************** SMALL ***********************************/ } .sul-box-raised-1.with-hover:hover { background-color: var(--color-bg); box-shadow: -2px -2px 5px var(--color-white), 2px 2px 5px var(--color-shadow); } .sul-box-raised-2 { background-color: var(--color-bg); box-shadow: 3px 3px 7px var(--color-shadow), -3px -3px 7px var(--color-white), inset 0 0 0 transparent, inset 0 0 0 transparent; /*********************************** SMALL ***********************************/ } .sul-box-raised-2.with-hover:hover { background-color: var(--color-bg); box-shadow: 0 0 0 transparent, 0 0 0 transparent, inset 3px 3px 7px var(--color-shadow), inset -3px -3px 7px var(--color-white); } .sul-box-raised-2.sm { background-color: var(--color-bg); box-shadow: 2px 2px 3px var(--color-shadow), -2px -2px 3px var(--color-white), inset 0 0 0 transparent, inset 0 0 0 transparent; } .sul-box-raised-2.sm.with-hover:hover { background-color: var(--color-bg); box-shadow: 0 0 0 transparent, 0 0 0 transparent, inset 2px 2px 3px var(--color-shadow), inset -2px -2px 3px var(--color-white); } .sul-box-raised-3 { background-color: var(--color-bg); box-shadow: -2px -2px 5px var(--color-white), 2px 2px 5px var(--color-shadow); /*********************************** SMALL ***********************************/ } .sul-box-raised-3.with-hover:hover { background-color: var(--color-bg); box-shadow: -5px -5px 20px var(--color-white), 5px 5px 20px var(--color-shadow); } .sul-box-inset-1 { background-color: var(--color-bg); box-shadow: 0 0 0 transparent, 0 0 0 transparent, inset 3px 3px 7px var(--color-shadow), inset -3px -3px 7px var(--color-white); /*********************************** SMALL ***********************************/ } .sul-box-inset-1.with-hover:hover { background-color: var(--color-bg); box-shadow: 3px 3px 7px var(--color-shadow), -3px -3px 7px var(--color-white), inset 0 0 0 transparent, inset 0 0 0 transparent; } .sul-box-inset-1.sm { background-color: var(--color-bg); box-shadow: 0 0 0 transparent, 0 0 0 transparent, inset 2px 2px 3px var(--color-shadow), inset -2px -2px 3px var(--color-white); } .sul-box-inset-1.sm.with-hover:hover { background-color: var(--color-bg); box-shadow: 2px 2px 3px var(--color-shadow), -2px -2px 3px var(--color-white), inset 0 0 0 transparent, inset 0 0 0 transparent; } html { box-sizing: border-box; scroll-behavior: smooth; } body { font-family: var(--main-font); background-color: var(--color-bg); color: var(--main-text-color); } body .sul-text-field { font-family: var(--main-font); } h1, h2, h3, span, p, a { font-weight: 300; } *, *::before, *::after { box-sizing: inherit; padding: 0; margin: 0; } header { background-color: var(--color-bg); } .sul-link { color: var(--primary-color); text-decoration: none; position: relative; } .sul-link:visited { color: var(--primary-color); text-decoration: none; } .sul-link::before { content: ""; position: absolute; bottom: -3px; left: 0; width: 0; height: 2px; background-color: var(--primary-color); transition: 0.5s; } .sul-link:hover::before { width: 100%; } a { text-decoration: none; color: inherit; cursor: pointer; } a:hover { text-decoration: none; color: inherit; } /*# sourceMappingURL=neumorphism-ui.css.map */