TIF_NGANJUK_E41220778/resources/scss/_variables.scss

311 lines
6.4 KiB
SCSS

$primary: #435ebe;
$secondary: #6c757d;
$success: #198754;
$info: #0dcaf0;
$warning: #ffc107;
$danger: #dc3545;
$light: #f4f7f8;
$dark: #212529;
// Derived colors untuk background light
$primary-light: rgba($primary, 0.1);
$success-light: rgba($success, 0.1);
$warning-light: rgba($warning, 0.1);
$danger-light: rgba($danger, 0.1);
$info-light: rgba($info, 0.1);
$secondary-light: rgba($secondary, 0.1);
// Border radius
$border-radius: 0.5rem;
$card-box-shadow: 0 0 1.25rem rgba(33,37,41,.05);
$border-radius-sm: 0.25rem;
$border-radius-lg: 1rem;
$shadow-sm: 0 2px 4px rgba(0,0,0,0.08);
$shadow-md: 0 4px 8px rgba(0,0,0,0.12);
$shadow-lg: 0 8px 20px rgba(0,0,0,0.15);
$transition: all 0.3s ease;
// ===================================
// CARD COMPONENTS
// ===================================
.card {
box-shadow: $card-box-shadow;
.card-header {
&.bg-white {
background-color: #fff !important;
border-bottom: 1px solid rgba($secondary, 0.125);
}
}
}
// ===================================
// ICON COMPONENTS
// ===================================
.icon-circle {
width: 50px;
height: 50px;
border-radius: $border-radius;
display: flex;
align-items: center;
justify-content: center;
transition: $transition;
}
.section-icon,
.chart-icon,
.notification-icon,
.activity-icon {
width: 40px;
height: 40px;
border-radius: 10px;
background-color: $primary-light;
display: flex;
align-items: center;
justify-content: center;
transition: $transition;
i {
font-size: 1.2rem;
}
}
// ===================================
// BACKGROUND COLORS
// ===================================
// Light backgrounds for icon circles
.bg-primary-light { background-color: $primary-light; }
.bg-success-light { background-color: $success-light; }
.bg-warning-light { background-color: $warning-light; }
.bg-danger-light { background-color: $danger-light; }
.bg-info-light { background-color: $info-light; }
.bg-secondary-light { background-color: $secondary-light; }
// Soft badge colors
.bg-primary-soft {
background-color: $primary-light;
color: $primary;
}
.bg-success-soft {
background-color: $success-light;
color: $success;
}
.bg-warning-soft {
background-color: $warning-light;
color: $warning;
}
.bg-danger-soft {
background-color: $danger-light;
color: $danger;
}
.bg-info-soft {
background-color: $info-light;
color: $info;
}
.bg-secondary-soft {
background-color: $secondary-light;
color: $secondary;
}
// ===================================
// BOOK COMPONENTS
// ===================================
.book-card {
transition: $transition;
box-shadow: $card-box-shadow;
&:hover {
transform: translateY(-2px);
box-shadow: $shadow-md !important;
.book-cover {
transform: scale(1.03);
}
}
}
.book-cover {
transition: $transition;
border-radius: $border-radius-sm;
&-container {
background: linear-gradient(135deg, rgba($light, 0.5) 0%, rgba($light, 0.8) 100%);
border-radius: $border-radius-sm 0 0 $border-radius-sm;
}
}
// ===================================
// ALERT COMPONENTS
// ===================================
.alert {
border-radius: $border-radius;
box-shadow: $shadow-sm;
.alert-icon {
width: 24px;
display: flex;
align-items: center;
justify-content: center;
}
&.alert-primary {
background-color: rgba($primary, 0.1);
color: darken($primary, 10%);
}
&.alert-success {
background-color: rgba($success, 0.1);
color: darken($success, 10%);
}
&.alert-warning {
background-color: rgba($warning, 0.1);
color: darken($warning, 20%);
}
&.alert-danger {
background-color: rgba($danger, 0.1);
color: darken($danger, 10%);
}
&.alert-info {
background-color: rgba($info, 0.1);
color: darken($info, 10%);
}
}
// ===================================
// SECTION COMPONENTS
// ===================================
.section-header {
padding-bottom: 15px;
border-bottom: 2px solid $light;
h5 {
color: $dark;
font-weight: 700;
}
}
// ===================================
// MODAL COMPONENTS
// ===================================
.modal {
.modal-content {
border: none;
border-radius: $border-radius-lg;
box-shadow: 0 20px 40px rgba(0,0,0,0.15);
.modal-header {
border-bottom: 1px solid rgba($secondary, 0.125);
padding: 1.5rem;
.modal-title {
color: $dark;
font-weight: 700;
}
}
.modal-footer {
border-top: 1px solid rgba($secondary, 0.125);
padding: 1.5rem;
}
}
}
// ===================================
// UTILITY CLASSES
// ===================================
.line-clamp-2 {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
line-height: 1.4;
}
.line-clamp-3 {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
line-height: 1.4;
}
// Rounded buttons
.btn {
&.rounded-pill {
border-radius: 50px;
padding: 0.5rem 1.5rem;
font-weight: 500;
&.btn-sm {
padding: 0.375rem 1.25rem;
font-size: 0.875rem;
}
}
}
// Badge
.badge {
&.rounded-pill {
font-weight: 500;
padding: 0.5rem 1rem;
}
}
// ===================================
// SCROLLBAR CUSTOMIZATION
// ===================================
.modal-dialog-scrollable .modal-body {
&::-webkit-scrollbar {
width: 6px;
}
&::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 3px;
}
&::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 3px;
&:hover {
background: #a8a8a8;
}
}
}
// ===================================
// EMPTY STATES
// ===================================
.empty-state {
text-align: center;
padding: 3rem 1rem;
i {
font-size: 4rem;
color: $secondary;
margin-bottom: 1rem;
opacity: 0.5;
}
p {
color: $secondary;
font-size: 1rem;
margin: 0;
}
}