ptcoffee_django/static/styles/dashboard.css

665 lines
11 KiB
CSS

:root {
--color-fg: #333;
--color-bg: #eff5f8;
--color-bg-alt: #bdc8d2;
--color-rgb-bg-alt: 189, 200, 210;
--color-gray: #9d9d9d;
--color-yellow: #f8a911;
--color-yellow-alt: #f6c463;
--color-yellow-highlight: #f9e476;
--color-green: #13ce65;
--color-red: #ff4d44;
--color-light-gray: #e3e3e3;
--color-blue: #2c6e95;
--default-border: 2px solid var(--color-gray);
--default-shadow: 0 1rem 3rem var(--color-gray);
--table-border: 0.0125rem solid black;
}
html {
font-size: 100%;
}
body {
background: var(--color-bg);
font-family: 'Inter', sans-serif;
font-weight: 400;
padding: 0;
margin: 0;
line-height: 1.75;
color: var(--color-fg);
}
p {
margin: 0 0 1rem;
}
p:last-child {
margin-bottom: 0;
}
a {
color: var(--color-fg);
}
h1, h2, h3, h4, h5 {
margin: 0;
font-family: 'Inter', sans-serif;
font-weight: 700;
line-height: 1.3;
}
h1 {
font-size: 2.488rem;
}
h2 {
font-size: 2.074rem;
}
h3 {
font-size: 1.728rem;
}
h4 {
font-size: 1.44rem;
}
h5 {
font-size: 1.2rem;
}
small {
font-size: 0.833rem;
}
label {
}
address {
margin-bottom: 1rem;
}
ul, ol, dl {
margin: 0 0 1rem;
line-height: 1.3;
}
dl dt {
font-weight: bold;
}
dd {
margin: 0;
}
ul, ol {
padding: 1rem 0 1rem 2rem;
line-height: 1.75;
}
/* Tables
========================================================================== */
table {
border-collapse: collapse;
width: 100%;
text-align: left;
margin-bottom: 1rem;
background-color: white;
}
thead {
border-bottom: var(--table-border);
}
thead a {
color: inherit;
text-decoration: none;
}
tbody tr:nth-child(even) {
background-color: rgba(var(--color-rgb-bg-alt), 0.4);
}
td input[type=text] {
width: 100%;
}
th, td {
padding: 0.5rem 1rem;
}
tbody tr:last-child {
border-bottom: var(--table-border);
}
tbody tr:hover {
background-color: var(--color-yellow-highlight);
}
tbody tr.is-link {
cursor: pointer;
}
tfoot th {
text-align: right;
}
@media screen and (max-width: 600px) {
tr {
display: grid;
grid-template-columns: 1fr;
}
tfoot th {
text-align: unset;
}
}
/* Forms
====================================================================== */
input[type=text],
input[type=email],
input[type=number],
input[type=search],
input[type=date],
input[type=password],
select[multiple=multiple],
textarea {
font: inherit;
text-align: left;
color: var(--color-fg);
border: var(--default-border);
padding: 0.5rem;
outline: 0;
line-height: 1;
box-sizing: border-box;
}
input:focus,
textarea:focus {
border-color: var(--color-yellow);
}
select {
text-align: left;
font: inherit;
font-size: 1rem;
border: var(--default-border);
padding: 0.5em;
outline: 0;
line-height: 1;
}
input[type=number] + select {
margin-left: 1rem;
}
input[type=text],
input[type=email],
input[type=password],
select[multiple=multiple],
textarea {
display: block;
}
input[type=number] {
max-width: 6rem;
}
input[type=checkbox],
input[type=radio] {
width: 2rem;
height: 2rem;
vertical-align: middle;
}
input[type=search] {
width: 100%;
}
.btn,
input[type=submit],
button {
font-family: inherit;
font-weight: bold;
font-size: 1rem;
color: var(--color-fg);
text-decoration: none;
background-color: var(--color-yellow);
padding: 0.5rem 1rem;
border-radius: 0.5rem;
border: none;
cursor: pointer;
}
.btn:hover,
input[type=submit]:hover,
button:hover {
background-color: var(--color-yellow-alt);
}
.btn-warning {
background-color: var(--color-red) !important;
}
/* Figures, Images
====================================================================== */
figure {
margin: 0;
padding: 0;
}
.inline-image {
vertical-align: middle;
}
/* Layout
====================================================================== */
main {
overflow: scroll;
height: 100vh;
}
main article {
margin: 2rem 2rem 2rem 0;
}
main > article > header {
margin-bottom: 1rem;
}
.store-info {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
margin: 1rem 0;
}
@media screen and (max-width: 600px) {
.store-info {
grid-template-columns: 1fr;
}
}
.store-info div {
background-color: white;
padding: 2rem;
border-radius: 0.5rem;
}
.store-info div h3 {
text-align: right;
}
.store-action {
background-color: white;
padding: 1rem;
border-radius: 0.5rem;
margin-bottom: 1rem;
display: block;
font-weight: bold;
text-decoration: none;
}
.store-action:hover {
background-color: var(--color-bg-alt);
}
.dashboard-main {
display: grid;
grid-template-columns: 1fr 7fr;
gap: 2rem;
}
.dashboard-sidebar {
height: 100vh;
background-color: var(--color-bg-alt);
display: flex;
flex-direction: column;
justify-content: space-between;
}
.dashboard-nav {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
margin-top: 1rem;
padding: 1rem;
}
.dashboard-user {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
margin-top: 1rem;
padding: 1rem;
}
.dashboard-user a,
.dashboard-nav a {
padding: 0.5rem 1rem;
text-decoration: none;
font-weight: bold;
display: flex;
flex-direction: row;
align-items: center;
}
.dashboard-nav a img {
width: 24px;
margin-right: 0.5rem;
}
.dashboard-user a:hover,
.dashboard-nav a:hover {
background-color: var(--color-bg);
border-radius: 0.25rem;
}
@media screen and (max-width: 800px) {
.dashboard-sidebar {
height: unset;
gap: 0;
}
.dashboard-main {
grid-template-columns: 1fr;
}
main {
overflow: unset;
}
main > article {
margin: 1rem;
}
.dashboard-nav,
.dashboard-user {
font-size: 0.75rem;
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
gap: 0;
margin: 0;
padding: 0.5rem;
}
}
/* ==========================================================================
Inner Layout
========================================================================== */
.object-header {
display: flex;
align-items: center;
justify-content: space-between;
}
.object-menu {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
}
.panel {
margin-bottom: 2rem;
background-color: white;
}
.panel-header {
padding: 0.5rem 1rem;
background-color: var(--color-bg-alt);
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
border-bottom: var(--default-border);
}
.search-form {
width: 100%;
display: flex;
gap: 1rem;
align-items: center;
}
a button {
white-space: nowrap;
}
@media screen and (max-width: 800px) {
.object-header,
.panel-header {
flex-direction: column;
}
}
.panel-form,
.panel-section {
padding: 1rem;
}
.panel-datalist {
padding: 1rem;
display: grid;
grid-template-columns: auto 1fr;
gap: 2rem 2rem;
}
@media screen and (max-width: 800px) {
.panel-datalist {
grid-template-columns: 1fr;
gap: 1rem;
}
.panel-datalist dd:not(:last-child) {
margin-bottom: 1rem;
}
}
.panel-shipping {
display: grid;
grid-template-columns: 1fr 3fr;
gap: 2rem;
}
@media screen and (max-width: 800px) {
.panel-shipping {
grid-template-columns: 1fr;
}
}
.product-figure {
display: flex;
align-items: flex-start;
flex-direction: row;
align-items: center;
gap: 1rem;
}
.product-figure img {
background-color: white;
max-height: 6rem;
max-width: 6rem;
border: var(--default-border);
object-fit: contain;
aspect-ratio: 1/1;
width: 100%;
}
/* ==========================================================================
Gallery
========================================================================== */
.gallery {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 3rem;
}
.gallery-item,
.gallery-item img {
width: 100%;
}
.gallery-item img {
border: var(--default-border);
object-fit: contain;
aspect-ratio: 1/1;
}
@media screen and (max-width: 900px) {
.gallery {
grid-template-columns: repeat(2, 1fr);
}
}
@media screen and (max-width: 600px) {
.gallery {
grid-template-columns: 1fr;
}
}
/* ==========================================================================
Messages
========================================================================== */
.messages {
text-align: left;
white-space: normal;
margin: 1rem;
position: fixed;
left: auto;
right: 0;
bottom: 0;
top: auto;
z-index: 990;
display: flex;
flex-direction: column;
gap: 1rem;
}
.messages-message {
background-color: var(--color-fg);
border-radius: 0.5rem;
box-shadow: var(--default-shadow);
padding: 0.5rem 1rem;
}
.messages-message.debug {
color: white;
}
.messages-message.info {
color: white;
}
.messages-message.success {
color: var(--color-green);
}
.messages-message.warning {
color: var(--color-yellow);
}
.messages-message.error {
color: var(--color-red);
}
.message-dissmiss {
font-size: 1.3em;
cursor: pointer;
margin-left: 1rem;
}
/* ==========================================================================
Status
========================================================================== */
.status {
padding: 0.5rem 1rem;
border-radius: 0.5rem;
font-size: 1.25rem;
font-weight: bold;
display: inline-block;
}
.status-display {
display: flex;
align-items: center;
flex-direction: row;
}
.status-info {
background-color: var(--color-gray);
}
.status-success {
background-color: var(--color-green);
}
.status-warning {
background-color: var(--color-yellow-alt);
}
.status-error {
background-color: var(--color-red);
}
.status-draft {
background-color: var(--color-gray);
}
.status-unfulfilled {
background-color: var(--color-red);
}
.status-partially_returned {
background-color: var(--color-yellow-alt);
}
.status-partially_fulfilled {
background-color: var(--color-yellow-alt);
}
.status-returned {
background-color: var(--color-gray);
}
.status-fulfilled {
background-color: var(--color-green);
}
.status-cancelled {
background-color: var(--color-gray);
}
.status-dot {
width: 1rem;
height: 1rem;
min-width: 1rem;
min-height: 1rem;
border-radius: 100%;
margin-right: 0.5rem;
}
/* ==========================================================================
Pagination
========================================================================== */
.pagination {
display: flex;
gap: 1rem;
}
/* ==========================================================================
Utils
========================================================================== */
.text-right {
text-align: right;
}
.text-left {
text-align: left;
}
.text-center {
text-align: center;
}
.handle {
cursor: grab;
}