Files
phishingclub/frontend/src/app.css
T
Ronni Skansing bbd7397c14 make placeholder text less visible
Signed-off-by: Ronni Skansing <rskansing@gmail.com>
2025-11-22 10:44:42 +01:00

352 lines
7.6 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
/* @import url('https://fonts.googleapis.com/css2?family=Phudu:wght@700;900&family=Titillium+Web:wght@400;600&display=swap'); */
@font-face {
font-family: 'Titillium Web';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/TitilliumWeb-Regular.ttf') format('truetype');
}
@font-face {
font-family: 'Titillium Web';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('/TitilliumWeb-SemiBold.ttf') format('truetype');
}
@font-face {
font-family: 'Titillium Web';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/TitilliumWeb-Bold.ttf') format('truetype');
}
/* For Phudu */
@font-face {
font-family: 'Phudu';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/Phudu-Bold.ttf') format('truetype');
}
@font-face {
font-family: 'Phudu';
font-style: normal;
font-weight: 900;
font-display: swap;
src: url('/Phudu-Black.ttf') format('truetype');
}
/* custom properties for theming */
:root {
/* light mode colors */
--color-bg-primary: #ffffff;
--color-bg-secondary: #f8f9fa;
--color-bg-tertiary: #f1f3f4;
--color-border: #e5e7eb;
--color-border-hover: #d1d5db;
--color-text-primary: #111827;
--color-text-secondary: #6b7280;
--color-text-tertiary: #9ca3af;
--color-shadow: rgba(0, 0, 0, 0.1);
--color-shadow-lg: rgba(0, 0, 0, 0.15);
/* form colors */
--color-input-bg: #ffffff;
--color-input-border: #d1d5db;
--color-input-border-focus: #2563eb;
/* scrollbar colors */
--color-scrollbar-track: #f1f1f1;
--color-scrollbar-thumb: #819efb;
--color-scrollbar-thumb-hover: #6b85d6;
}
.dark {
/* dark mode colors */
--color-bg-primary: #111827;
--color-bg-secondary: #1f2937;
--color-bg-tertiary: #374151;
--color-border: #374151;
--color-border-hover: #4b5563;
--color-text-primary: #f9fafb;
--color-text-secondary: #d1d5db;
--color-text-tertiary: #9ca3af;
--color-shadow: rgba(0, 0, 0, 0.3);
--color-shadow-lg: rgba(0, 0, 0, 0.4);
/* form colors */
--color-input-bg: #374151;
--color-input-border: #4b5563;
--color-input-border-focus: #3b82f6;
/* scrollbar colors */
--color-scrollbar-track: #374151;
--color-scrollbar-thumb: #6b7280;
--color-scrollbar-thumb-hover: #9ca3af;
}
/* global styles */
body {
background-color: var(--color-bg-primary);
color: var(--color-text-primary);
transition:
background-color 0.2s ease,
color 0.2s ease;
}
/* scrollbar styles */
body {
@apply [&::-webkit-scrollbar]:w-2
[&::-webkit-scrollbar-track]:bg-[var(--color-scrollbar-track)]
[&::-webkit-scrollbar-thumb]:rounded-md
[&::-webkit-scrollbar-thumb]:bg-[var(--color-scrollbar-thumb)]
[&::-webkit-scrollbar-thumb:hover]:bg-[var(--color-scrollbar-thumb-hover)];
}
/* dark mode utility classes */
@layer utilities {
.bg-theme-primary {
background-color: var(--color-bg-primary);
}
.bg-theme-secondary {
background-color: var(--color-bg-secondary);
}
.bg-theme-tertiary {
background-color: var(--color-bg-tertiary);
}
.text-theme-primary {
color: var(--color-text-primary);
}
.text-theme-secondary {
color: var(--color-text-secondary);
}
.text-theme-tertiary {
color: var(--color-text-tertiary);
}
.border-theme {
border-color: var(--color-border);
}
.border-theme-hover:hover {
border-color: var(--color-border-hover);
}
.shadow-theme {
box-shadow: 0 1px 3px 0 var(--color-shadow);
}
.shadow-theme-lg {
box-shadow: 0 10px 15px -3px var(--color-shadow-lg);
}
.input-theme {
background-color: var(--color-input-bg);
border-color: var(--color-input-border);
color: var(--color-text-primary);
}
.input-theme:focus {
border-color: var(--color-input-border-focus);
}
}
/* component-specific dark mode overrides */
.dark .bg-gray-50 {
@apply bg-gray-800;
}
.dark .bg-gray-100 {
@apply bg-gray-700;
}
.dark .bg-gray-200 {
@apply bg-gray-600;
}
.dark .bg-white {
@apply bg-gray-800;
}
.dark .text-gray-900 {
@apply text-gray-100;
}
.dark .text-gray-800 {
@apply text-gray-200;
}
.dark .text-gray-700 {
@apply text-gray-300;
}
.dark .text-gray-600 {
@apply text-gray-400;
}
.dark .text-black {
@apply text-white;
}
.dark .border-gray-200 {
@apply border-gray-600;
}
.dark .border-gray-300 {
@apply border-gray-500;
}
/* table dark mode styles */
.dark table {
@apply bg-gray-800;
}
.dark table td {
@apply bg-transparent text-gray-300 border-gray-600;
}
/* form elements dark mode */
.dark input,
.dark textarea,
.dark select {
@apply bg-gray-700 border-gray-600 text-white placeholder-gray-500;
}
.dark input:focus,
.dark textarea:focus,
.dark select:focus {
@apply border-blue-500 ring-blue-500;
}
/* modal and card dark mode */
.dark .modal-content,
.dark .card {
@apply bg-gray-800 border-gray-600;
}
/* button hover effects in dark mode */
.dark .bg-cta-blue:hover {
@apply bg-blue-600;
}
.dark .bg-pc-darkblue:hover {
@apply bg-blue-900;
}
/* custom scrollbar for dark mode containers */
.dark .overflow-auto,
.dark .overflow-x-auto,
.dark .overflow-y-auto {
scrollbar-width: thin;
scrollbar-color: #6b7280 #374151;
}
.dark .overflow-auto::-webkit-scrollbar,
.dark .overflow-x-auto::-webkit-scrollbar,
.dark .overflow-y-auto::-webkit-scrollbar {
width: 8px;
height: 8px;
}
.dark .overflow-auto::-webkit-scrollbar-track,
.dark .overflow-x-auto::-webkit-scrollbar-track,
.dark .overflow-y-auto::-webkit-scrollbar-track {
background: #374151;
}
.dark .overflow-auto::-webkit-scrollbar-thumb,
.dark .overflow-x-auto::-webkit-scrollbar-thumb,
.dark .overflow-y-auto::-webkit-scrollbar-thumb {
background: #6b7280;
border-radius: 4px;
}
.dark .overflow-auto::-webkit-scrollbar-thumb:hover,
.dark .overflow-x-auto::-webkit-scrollbar-thumb:hover,
.dark .overflow-y-auto::-webkit-scrollbar-thumb:hover {
background: #9ca3af;
}
/* native date picker dark mode styling */
.dark input[type='date']::-webkit-calendar-picker-indicator,
.dark input[type='time']::-webkit-calendar-picker-indicator,
.dark input[type='datetime-local']::-webkit-calendar-picker-indicator {
filter: invert(1);
}
.dark input[type='date']::-webkit-datetime-edit,
.dark input[type='time']::-webkit-datetime-edit,
.dark input[type='datetime-local']::-webkit-datetime-edit {
color: rgb(209 213 219);
}
.dark input[type='date']::-webkit-datetime-edit-fields-wrapper,
.dark input[type='time']::-webkit-datetime-edit-fields-wrapper,
.dark input[type='datetime-local']::-webkit-datetime-edit-fields-wrapper {
background: rgb(55 65 81);
}
/* force date picker to use system dark theme */
.dark input[type='date'],
.dark input[type='time'],
.dark input[type='datetime-local'] {
color-scheme: dark;
}
/* selected date background in dark mode */
.dark input[type='date']::-webkit-datetime-edit-day-field:focus,
.dark input[type='date']::-webkit-datetime-edit-month-field:focus,
.dark input[type='date']::-webkit-datetime-edit-year-field:focus,
.dark input[type='time']::-webkit-datetime-edit-hour-field:focus,
.dark input[type='time']::-webkit-datetime-edit-minute-field:focus {
background-color: rgb(55 65 81);
color: rgb(209 213 219);
}
/* transitions for smooth theme switching */
*,
*::before,
*::after {
transition:
background-color 0.2s ease,
border-color 0.2s ease,
color 0.2s ease;
}
/* override transitions for elements that shouldn't animate */
.no-transition,
.no-transition *,
.no-transition *::before,
.no-transition *::after {
transition: none !important;
}
/* global placeholder styling for consistency */
input::placeholder,
textarea::placeholder,
select::placeholder {
color: #9ca3af; /* gray-400 */
opacity: 0.6;
}
.dark input::placeholder,
.dark textarea::placeholder,
.dark select::placeholder {
color: #6b7280; /* gray-500 */
opacity: 0.6;
}