From cae6d4163bcf0943238de6e139ad7bdc62a61369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Fri, 22 May 2026 09:02:07 +0200 Subject: [PATCH] new themes --- .gitignore | 4 +- .../adaptive/bootstrap.min.css | 66 +++++++++++++++++++ .../pytorrent-themes/amber/bootstrap.min.css | 66 +++++++++++++++++++ .../crimson/bootstrap.min.css | 66 +++++++++++++++++++ .../pytorrent-themes/forest/bootstrap.min.css | 66 +++++++++++++++++++ .../graphite/bootstrap.min.css | 66 +++++++++++++++++++ .../pytorrent-themes/nord/bootstrap.min.css | 66 +++++++++++++++++++ .../pytorrent-themes/ocean/bootstrap.min.css | 66 +++++++++++++++++++ .../pytorrent-themes/sky/bootstrap.min.css | 66 +++++++++++++++++++ 9 files changed, 531 insertions(+), 1 deletion(-) create mode 100644 pytorrent/static/libs/pytorrent-themes/adaptive/bootstrap.min.css create mode 100644 pytorrent/static/libs/pytorrent-themes/amber/bootstrap.min.css create mode 100644 pytorrent/static/libs/pytorrent-themes/crimson/bootstrap.min.css create mode 100644 pytorrent/static/libs/pytorrent-themes/forest/bootstrap.min.css create mode 100644 pytorrent/static/libs/pytorrent-themes/graphite/bootstrap.min.css create mode 100644 pytorrent/static/libs/pytorrent-themes/nord/bootstrap.min.css create mode 100644 pytorrent/static/libs/pytorrent-themes/ocean/bootstrap.min.css create mode 100644 pytorrent/static/libs/pytorrent-themes/sky/bootstrap.min.css diff --git a/.gitignore b/.gitignore index 8f41eb9..07873b3 100644 --- a/.gitignore +++ b/.gitignore @@ -42,4 +42,6 @@ data/logs/* todo.txt -pytorrent/static/libs/* \ No newline at end of file +pytorrent/static/libs/* +!pytorrent/static/libs/pytorrent-themes/ +!pytorrent/static/libs/pytorrent-themes/** diff --git a/pytorrent/static/libs/pytorrent-themes/adaptive/bootstrap.min.css b/pytorrent/static/libs/pytorrent-themes/adaptive/bootstrap.min.css new file mode 100644 index 0000000..725313f --- /dev/null +++ b/pytorrent/static/libs/pytorrent-themes/adaptive/bootstrap.min.css @@ -0,0 +1,66 @@ +/* Balanced violet-blue theme with calm defaults. */ +:root, [data-bs-theme="light"] { + color-scheme: light; + --bs-primary: #6750a4; + --bs-primary-rgb: 103,80,164; + --bs-link-color: #6750a4; + --bs-link-color-rgb: 103,80,164; + --bs-link-hover-color: #4b2f8f; + --bs-link-hover-color-rgb: 103,80,164; + --bs-body-bg: #f6f7fb; + --bs-body-bg-rgb: 246,247,251; + --bs-body-color: #1f2937; + --bs-secondary-bg: #ffffff; + --bs-secondary-bg-rgb: 255,255,255; + --bs-tertiary-bg: #eef1f7; + --bs-border-color: #d9deea; + --bs-secondary-color: #667085; + --bs-primary-bg-subtle: #ece7ff; + --bs-primary-text-emphasis: #4b2f8f; + --torrent-progress-complete: #2f9e75; + --pytorrent-page-bg: linear-gradient(180deg, #f7f8fc 0%, #eef1f7 100%); + --pytorrent-shell-shadow: 0 16px 40px rgba(39, 45, 73, 0.12); +} + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-primary: #8f7cff; + --bs-primary-rgb: 143,124,255; + --bs-link-color: #8f7cff; + --bs-link-color-rgb: 143,124,255; + --bs-link-hover-color: #c6bdff; + --bs-link-hover-color-rgb: 143,124,255; + --bs-body-bg: #080b12; + --bs-body-bg-rgb: 8,11,18; + --bs-body-color: #dce3f0; + --bs-secondary-bg: #101624; + --bs-secondary-bg-rgb: 16,22,36; + --bs-tertiary-bg: #151d2e; + --bs-border-color: #273247; + --bs-secondary-color: #97a4ba; + --bs-primary-bg-subtle: #191735; + --bs-primary-text-emphasis: #c6bdff; + --torrent-progress-complete: #2f9e75; + --pytorrent-page-bg: radial-gradient(circle at top left, rgba(143, 124, 255, 0.16), transparent 34%), #080b12; + --pytorrent-shell-shadow: 0 18px 55px rgba(0, 0, 0, 0.48); +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary-text-emphasis); + --bs-btn-hover-border-color: var(--bs-primary-text-emphasis); +} +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.72); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); +} +.nav-pills { + --bs-nav-pills-link-active-bg: var(--bs-primary); +} +.progress, +.progress-stacked { + --bs-progress-bg: rgba(var(--bs-secondary-bg-rgb), 0.82); +} diff --git a/pytorrent/static/libs/pytorrent-themes/amber/bootstrap.min.css b/pytorrent/static/libs/pytorrent-themes/amber/bootstrap.min.css new file mode 100644 index 0000000..859273f --- /dev/null +++ b/pytorrent/static/libs/pytorrent-themes/amber/bootstrap.min.css @@ -0,0 +1,66 @@ +/* Warm amber theme, good for light mode and softer dark mode. */ +:root, [data-bs-theme="light"] { + color-scheme: light; + --bs-primary: #b45309; + --bs-primary-rgb: 180,83,9; + --bs-link-color: #b45309; + --bs-link-color-rgb: 180,83,9; + --bs-link-hover-color: #92400e; + --bs-link-hover-color-rgb: 180,83,9; + --bs-body-bg: #fff8ed; + --bs-body-bg-rgb: 255,248,237; + --bs-body-color: #2c1d0b; + --bs-secondary-bg: #ffffff; + --bs-secondary-bg-rgb: 255,255,255; + --bs-tertiary-bg: #ffefd6; + --bs-border-color: #f3d7aa; + --bs-secondary-color: #7a6750; + --bs-primary-bg-subtle: #ffecd0; + --bs-primary-text-emphasis: #92400e; + --torrent-progress-complete: #16a34a; + --pytorrent-page-bg: linear-gradient(180deg, #fffaf2 0%, #fff0d8 100%); + --pytorrent-shell-shadow: 0 16px 38px rgba(146, 64, 14, 0.13); +} + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-primary: #f59e0b; + --bs-primary-rgb: 245,158,11; + --bs-link-color: #f59e0b; + --bs-link-color-rgb: 245,158,11; + --bs-link-hover-color: #fde68a; + --bs-link-hover-color-rgb: 245,158,11; + --bs-body-bg: #140d05; + --bs-body-bg-rgb: 20,13,5; + --bs-body-color: #f5e9d6; + --bs-secondary-bg: #211607; + --bs-secondary-bg-rgb: 33,22,7; + --bs-tertiary-bg: #2b1d0b; + --bs-border-color: #4c3515; + --bs-secondary-color: #c3a780; + --bs-primary-bg-subtle: #3a2609; + --bs-primary-text-emphasis: #fde68a; + --torrent-progress-complete: #22c55e; + --pytorrent-page-bg: radial-gradient(circle at top left, rgba(245, 158, 11, 0.16), transparent 34%), #140d05; + --pytorrent-shell-shadow: 0 18px 55px rgba(30, 15, 0, 0.58); +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary-text-emphasis); + --bs-btn-hover-border-color: var(--bs-primary-text-emphasis); +} +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.72); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); +} +.nav-pills { + --bs-nav-pills-link-active-bg: var(--bs-primary); +} +.progress, +.progress-stacked { + --bs-progress-bg: rgba(var(--bs-secondary-bg-rgb), 0.82); +} diff --git a/pytorrent/static/libs/pytorrent-themes/crimson/bootstrap.min.css b/pytorrent/static/libs/pytorrent-themes/crimson/bootstrap.min.css new file mode 100644 index 0000000..778ef69 --- /dev/null +++ b/pytorrent/static/libs/pytorrent-themes/crimson/bootstrap.min.css @@ -0,0 +1,66 @@ +/* High-contrast red accent theme without the previous purple feel. */ +:root, [data-bs-theme="light"] { + color-scheme: light; + --bs-primary: #be123c; + --bs-primary-rgb: 190,18,60; + --bs-link-color: #be123c; + --bs-link-color-rgb: 190,18,60; + --bs-link-hover-color: #9f1239; + --bs-link-hover-color-rgb: 190,18,60; + --bs-body-bg: #fff5f7; + --bs-body-bg-rgb: 255,245,247; + --bs-body-color: #2b1118; + --bs-secondary-bg: #ffffff; + --bs-secondary-bg-rgb: 255,255,255; + --bs-tertiary-bg: #ffe4ea; + --bs-border-color: #f5c6d1; + --bs-secondary-color: #76545d; + --bs-primary-bg-subtle: #ffe1e9; + --bs-primary-text-emphasis: #9f1239; + --torrent-progress-complete: #16a34a; + --pytorrent-page-bg: linear-gradient(180deg, #fff8fa 0%, #ffe8ee 100%); + --pytorrent-shell-shadow: 0 16px 38px rgba(159, 18, 57, 0.13); +} + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-primary: #fb7185; + --bs-primary-rgb: 251,113,133; + --bs-link-color: #fb7185; + --bs-link-color-rgb: 251,113,133; + --bs-link-hover-color: #fecdd3; + --bs-link-hover-color-rgb: 251,113,133; + --bs-body-bg: #13070a; + --bs-body-bg-rgb: 19,7,10; + --bs-body-color: #f7dce2; + --bs-secondary-bg: #211014; + --bs-secondary-bg-rgb: 33,16,20; + --bs-tertiary-bg: #2b151b; + --bs-border-color: #4b2430; + --bs-secondary-color: #c096a1; + --bs-primary-bg-subtle: #3b111b; + --bs-primary-text-emphasis: #fecdd3; + --torrent-progress-complete: #22c55e; + --pytorrent-page-bg: radial-gradient(circle at top left, rgba(251, 113, 133, 0.15), transparent 35%), #13070a; + --pytorrent-shell-shadow: 0 18px 55px rgba(28, 0, 8, 0.58); +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary-text-emphasis); + --bs-btn-hover-border-color: var(--bs-primary-text-emphasis); +} +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.72); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); +} +.nav-pills { + --bs-nav-pills-link-active-bg: var(--bs-primary); +} +.progress, +.progress-stacked { + --bs-progress-bg: rgba(var(--bs-secondary-bg-rgb), 0.82); +} diff --git a/pytorrent/static/libs/pytorrent-themes/forest/bootstrap.min.css b/pytorrent/static/libs/pytorrent-themes/forest/bootstrap.min.css new file mode 100644 index 0000000..c3cafb8 --- /dev/null +++ b/pytorrent/static/libs/pytorrent-themes/forest/bootstrap.min.css @@ -0,0 +1,66 @@ +/* Green productivity theme with warm contrast. */ +:root, [data-bs-theme="light"] { + color-scheme: light; + --bs-primary: #2f7d32; + --bs-primary-rgb: 47,125,50; + --bs-link-color: #2f7d32; + --bs-link-color-rgb: 47,125,50; + --bs-link-hover-color: #256329; + --bs-link-hover-color-rgb: 47,125,50; + --bs-body-bg: #f4faf2; + --bs-body-bg-rgb: 244,250,242; + --bs-body-color: #172417; + --bs-secondary-bg: #ffffff; + --bs-secondary-bg-rgb: 255,255,255; + --bs-tertiary-bg: #e7f4e4; + --bs-border-color: #cce4c7; + --bs-secondary-color: #61735e; + --bs-primary-bg-subtle: #dcf2d7; + --bs-primary-text-emphasis: #256329; + --torrent-progress-complete: #22c55e; + --pytorrent-page-bg: linear-gradient(180deg, #fbfff9 0%, #e9f6e5 100%); + --pytorrent-shell-shadow: 0 16px 38px rgba(35, 84, 38, 0.13); +} + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-primary: #4ade80; + --bs-primary-rgb: 74,222,128; + --bs-link-color: #4ade80; + --bs-link-color-rgb: 74,222,128; + --bs-link-hover-color: #bbf7d0; + --bs-link-hover-color-rgb: 74,222,128; + --bs-body-bg: #071109; + --bs-body-bg-rgb: 7,17,9; + --bs-body-color: #d9f1dc; + --bs-secondary-bg: #0f1f12; + --bs-secondary-bg-rgb: 15,31,18; + --bs-tertiary-bg: #152b18; + --bs-border-color: #24472a; + --bs-secondary-color: #95b79a; + --bs-primary-bg-subtle: #13381a; + --bs-primary-text-emphasis: #bbf7d0; + --torrent-progress-complete: #4ade80; + --pytorrent-page-bg: radial-gradient(circle at top left, rgba(74, 222, 128, 0.14), transparent 36%), #071109; + --pytorrent-shell-shadow: 0 18px 55px rgba(0, 20, 4, 0.58); +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary-text-emphasis); + --bs-btn-hover-border-color: var(--bs-primary-text-emphasis); +} +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.72); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); +} +.nav-pills { + --bs-nav-pills-link-active-bg: var(--bs-primary); +} +.progress, +.progress-stacked { + --bs-progress-bg: rgba(var(--bs-secondary-bg-rgb), 0.82); +} diff --git a/pytorrent/static/libs/pytorrent-themes/graphite/bootstrap.min.css b/pytorrent/static/libs/pytorrent-themes/graphite/bootstrap.min.css new file mode 100644 index 0000000..d819e03 --- /dev/null +++ b/pytorrent/static/libs/pytorrent-themes/graphite/bootstrap.min.css @@ -0,0 +1,66 @@ +/* Neutral grey theme for users who want low saturation. */ +:root, [data-bs-theme="light"] { + color-scheme: light; + --bs-primary: #334155; + --bs-primary-rgb: 51,65,85; + --bs-link-color: #334155; + --bs-link-color-rgb: 51,65,85; + --bs-link-hover-color: #1f2937; + --bs-link-hover-color-rgb: 51,65,85; + --bs-body-bg: #f5f6f8; + --bs-body-bg-rgb: 245,246,248; + --bs-body-color: #18202f; + --bs-secondary-bg: #ffffff; + --bs-secondary-bg-rgb: 255,255,255; + --bs-tertiary-bg: #eceff3; + --bs-border-color: #d7dce3; + --bs-secondary-color: #667085; + --bs-primary-bg-subtle: #e4e8ef; + --bs-primary-text-emphasis: #1f2937; + --torrent-progress-complete: #16a34a; + --pytorrent-page-bg: linear-gradient(180deg, #fafafa 0%, #edf0f4 100%); + --pytorrent-shell-shadow: 0 16px 38px rgba(31, 41, 55, 0.13); +} + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-primary: #94a3b8; + --bs-primary-rgb: 148,163,184; + --bs-link-color: #94a3b8; + --bs-link-color-rgb: 148,163,184; + --bs-link-hover-color: #e2e8f0; + --bs-link-hover-color-rgb: 148,163,184; + --bs-body-bg: #07090d; + --bs-body-bg-rgb: 7,9,13; + --bs-body-color: #d7dde7; + --bs-secondary-bg: #11151c; + --bs-secondary-bg-rgb: 17,21,28; + --bs-tertiary-bg: #171c25; + --bs-border-color: #2b3442; + --bs-secondary-color: #99a3b3; + --bs-primary-bg-subtle: #1d2531; + --bs-primary-text-emphasis: #e2e8f0; + --torrent-progress-complete: #22c55e; + --pytorrent-page-bg: radial-gradient(circle at top left, rgba(148, 163, 184, 0.11), transparent 34%), #07090d; + --pytorrent-shell-shadow: 0 18px 55px rgba(0, 0, 0, 0.52); +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary-text-emphasis); + --bs-btn-hover-border-color: var(--bs-primary-text-emphasis); +} +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.72); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); +} +.nav-pills { + --bs-nav-pills-link-active-bg: var(--bs-primary); +} +.progress, +.progress-stacked { + --bs-progress-bg: rgba(var(--bs-secondary-bg-rgb), 0.82); +} diff --git a/pytorrent/static/libs/pytorrent-themes/nord/bootstrap.min.css b/pytorrent/static/libs/pytorrent-themes/nord/bootstrap.min.css new file mode 100644 index 0000000..a87e14e --- /dev/null +++ b/pytorrent/static/libs/pytorrent-themes/nord/bootstrap.min.css @@ -0,0 +1,66 @@ +/* Cool blue-grey theme inspired by Nordic palettes. */ +:root, [data-bs-theme="light"] { + color-scheme: light; + --bs-primary: #4c6a92; + --bs-primary-rgb: 76,106,146; + --bs-link-color: #4c6a92; + --bs-link-color-rgb: 76,106,146; + --bs-link-hover-color: #365174; + --bs-link-hover-color-rgb: 76,106,146; + --bs-body-bg: #f4f7fb; + --bs-body-bg-rgb: 244,247,251; + --bs-body-color: #182334; + --bs-secondary-bg: #ffffff; + --bs-secondary-bg-rgb: 255,255,255; + --bs-tertiary-bg: #e7edf5; + --bs-border-color: #d0d9e8; + --bs-secondary-color: #607089; + --bs-primary-bg-subtle: #dfe8f4; + --bs-primary-text-emphasis: #365174; + --torrent-progress-complete: #3aa675; + --pytorrent-page-bg: linear-gradient(180deg, #fbfdff 0%, #e9eff7 100%); + --pytorrent-shell-shadow: 0 16px 38px rgba(47, 64, 87, 0.13); +} + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-primary: #88c0d0; + --bs-primary-rgb: 136,192,208; + --bs-link-color: #88c0d0; + --bs-link-color-rgb: 136,192,208; + --bs-link-hover-color: #b6e3ee; + --bs-link-hover-color-rgb: 136,192,208; + --bs-body-bg: #0b111a; + --bs-body-bg-rgb: 11,17,26; + --bs-body-color: #d8dee9; + --bs-secondary-bg: #111927; + --bs-secondary-bg-rgb: 17,25,39; + --bs-tertiary-bg: #172233; + --bs-border-color: #2e3a4d; + --bs-secondary-color: #9aa8bc; + --bs-primary-bg-subtle: #132b3a; + --bs-primary-text-emphasis: #b6e3ee; + --torrent-progress-complete: #a3be8c; + --pytorrent-page-bg: radial-gradient(circle at top left, rgba(136, 192, 208, 0.14), transparent 35%), #0b111a; + --pytorrent-shell-shadow: 0 18px 55px rgba(3, 8, 15, 0.55); +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary-text-emphasis); + --bs-btn-hover-border-color: var(--bs-primary-text-emphasis); +} +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.72); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); +} +.nav-pills { + --bs-nav-pills-link-active-bg: var(--bs-primary); +} +.progress, +.progress-stacked { + --bs-progress-bg: rgba(var(--bs-secondary-bg-rgb), 0.82); +} diff --git a/pytorrent/static/libs/pytorrent-themes/ocean/bootstrap.min.css b/pytorrent/static/libs/pytorrent-themes/ocean/bootstrap.min.css new file mode 100644 index 0000000..f36ee52 --- /dev/null +++ b/pytorrent/static/libs/pytorrent-themes/ocean/bootstrap.min.css @@ -0,0 +1,66 @@ +/* Dark teal/navy with a bright, clean light mode. */ +:root, [data-bs-theme="light"] { + color-scheme: light; + --bs-primary: #0f766e; + --bs-primary-rgb: 15,118,110; + --bs-link-color: #0f766e; + --bs-link-color-rgb: 15,118,110; + --bs-link-hover-color: #095c55; + --bs-link-hover-color-rgb: 15,118,110; + --bs-body-bg: #f2fbfa; + --bs-body-bg-rgb: 242,251,250; + --bs-body-color: #102a2a; + --bs-secondary-bg: #ffffff; + --bs-secondary-bg-rgb: 255,255,255; + --bs-tertiary-bg: #dff5f2; + --bs-border-color: #bfe4df; + --bs-secondary-color: #54706f; + --bs-primary-bg-subtle: #d6f4ef; + --bs-primary-text-emphasis: #095c55; + --torrent-progress-complete: #14b8a6; + --pytorrent-page-bg: linear-gradient(180deg, #f7fffe 0%, #e6f7f5 100%); + --pytorrent-shell-shadow: 0 16px 38px rgba(10, 78, 74, 0.13); +} + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-primary: #2dd4bf; + --bs-primary-rgb: 45,212,191; + --bs-link-color: #2dd4bf; + --bs-link-color-rgb: 45,212,191; + --bs-link-hover-color: #99f6e4; + --bs-link-hover-color-rgb: 45,212,191; + --bs-body-bg: #031316; + --bs-body-bg-rgb: 3,19,22; + --bs-body-color: #d5f4f1; + --bs-secondary-bg: #082326; + --bs-secondary-bg-rgb: 8,35,38; + --bs-tertiary-bg: #0d3034; + --bs-border-color: #17494e; + --bs-secondary-color: #8ab6b2; + --bs-primary-bg-subtle: #063a3c; + --bs-primary-text-emphasis: #99f6e4; + --torrent-progress-complete: #34d399; + --pytorrent-page-bg: radial-gradient(circle at top left, rgba(45, 212, 191, 0.16), transparent 36%), #031316; + --pytorrent-shell-shadow: 0 18px 55px rgba(0, 20, 24, 0.58); +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary-text-emphasis); + --bs-btn-hover-border-color: var(--bs-primary-text-emphasis); +} +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.72); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); +} +.nav-pills { + --bs-nav-pills-link-active-bg: var(--bs-primary); +} +.progress, +.progress-stacked { + --bs-progress-bg: rgba(var(--bs-secondary-bg-rgb), 0.82); +} diff --git a/pytorrent/static/libs/pytorrent-themes/sky/bootstrap.min.css b/pytorrent/static/libs/pytorrent-themes/sky/bootstrap.min.css new file mode 100644 index 0000000..4f5a55b --- /dev/null +++ b/pytorrent/static/libs/pytorrent-themes/sky/bootstrap.min.css @@ -0,0 +1,66 @@ +/* Fresh lighter blue theme with a readable dark variant. */ +:root, [data-bs-theme="light"] { + color-scheme: light; + --bs-primary: #0284c7; + --bs-primary-rgb: 2,132,199; + --bs-link-color: #0284c7; + --bs-link-color-rgb: 2,132,199; + --bs-link-hover-color: #0369a1; + --bs-link-hover-color-rgb: 2,132,199; + --bs-body-bg: #f2f9ff; + --bs-body-bg-rgb: 242,249,255; + --bs-body-color: #102033; + --bs-secondary-bg: #ffffff; + --bs-secondary-bg-rgb: 255,255,255; + --bs-tertiary-bg: #dff1ff; + --bs-border-color: #bddff5; + --bs-secondary-color: #567185; + --bs-primary-bg-subtle: #d7efff; + --bs-primary-text-emphasis: #0369a1; + --torrent-progress-complete: #10b981; + --pytorrent-page-bg: linear-gradient(180deg, #f8fcff 0%, #e5f4ff 100%); + --pytorrent-shell-shadow: 0 16px 38px rgba(3, 105, 161, 0.13); +} + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-primary: #38bdf8; + --bs-primary-rgb: 56,189,248; + --bs-link-color: #38bdf8; + --bs-link-color-rgb: 56,189,248; + --bs-link-hover-color: #bae6fd; + --bs-link-hover-color-rgb: 56,189,248; + --bs-body-bg: #06111a; + --bs-body-bg-rgb: 6,17,26; + --bs-body-color: #d9ecf8; + --bs-secondary-bg: #0d1c29; + --bs-secondary-bg-rgb: 13,28,41; + --bs-tertiary-bg: #12283a; + --bs-border-color: #21435b; + --bs-secondary-color: #91b4ca; + --bs-primary-bg-subtle: #0b334d; + --bs-primary-text-emphasis: #bae6fd; + --torrent-progress-complete: #34d399; + --pytorrent-page-bg: radial-gradient(circle at top left, rgba(56, 189, 248, 0.15), transparent 36%), #06111a; + --pytorrent-shell-shadow: 0 18px 55px rgba(0, 13, 24, 0.58); +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary-text-emphasis); + --bs-btn-hover-border-color: var(--bs-primary-text-emphasis); +} +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.72); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); +} +.nav-pills { + --bs-nav-pills-link-active-bg: var(--bs-primary); +} +.progress, +.progress-stacked { + --bs-progress-bg: rgba(var(--bs-secondary-bg-rgb), 0.82); +}