diff --git a/app/Http/Controllers/MediaHub/HomeController.php b/app/Http/Controllers/MediaHub/HomeController.php index 0a4a0881c..52b100673 100644 --- a/app/Http/Controllers/MediaHub/HomeController.php +++ b/app/Http/Controllers/MediaHub/HomeController.php @@ -34,6 +34,7 @@ class HomeController extends Controller 'tv' => Tv::count(), 'movies' => Movie::count(), 'movieCategoryIds' => Category::where('movie_meta', '=', 1)->pluck('id')->toArray(), + 'tvCategoryIds' => Category::where('tv_meta', '=', 1)->pluck('id')->toArray(), 'collections' => Collection::count(), 'persons' => Person::whereNotNull('still')->count(), 'genres' => Genre::count(), diff --git a/app/Http/Controllers/MediaHub/TvSeasonController.php b/app/Http/Controllers/MediaHub/TvSeasonController.php deleted file mode 100644 index 494835293..000000000 --- a/app/Http/Controllers/MediaHub/TvSeasonController.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 - */ - -namespace App\Http\Controllers\MediaHub; - -use App\Http\Controllers\Controller; -use App\Models\Season; -use App\Models\Tv; - -class TvSeasonController extends Controller -{ - /** - * Show A TV Season. - */ - public function show(int $id): \Illuminate\Contracts\View\Factory|\Illuminate\View\View - { - $season = Season::with(['episodes', 'torrents'])->findOrFail($id); - - return view('mediahub.tv.season.show', [ - 'season' => $season, - 'show' => Tv::find($season->tv_id), - ]); - } -} diff --git a/app/Http/Controllers/MediaHub/TvShowController.php b/app/Http/Controllers/MediaHub/TvShowController.php deleted file mode 100644 index c49f8dfcf..000000000 --- a/app/Http/Controllers/MediaHub/TvShowController.php +++ /dev/null @@ -1,40 +0,0 @@ - - * @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 - */ - -namespace App\Http\Controllers\MediaHub; - -use App\Http\Controllers\Controller; -use App\Models\Tv; - -class TvShowController extends Controller -{ - /** - * Display All TV Shows. - */ - public function index(): \Illuminate\Contracts\View\Factory|\Illuminate\View\View - { - return view('mediahub.tv.index'); - } - - /** - * Show A TV Show. - */ - public function show(int $id): \Illuminate\Contracts\View\Factory|\Illuminate\View\View - { - return view('mediahub.tv.show', [ - 'show' => Tv::with(['seasons', 'genres', 'networks', 'companies', 'torrents']) - ->withCount('torrents') - ->findOrFail($id), - ]); - } -} diff --git a/resources/sass/app.scss b/resources/sass/app.scss index 3f1e4b34a..8c4ecf61b 100755 --- a/resources/sass/app.scss +++ b/resources/sass/app.scss @@ -5,7 +5,9 @@ @import 'vendor/alpinejs'; // Base +@import 'base/normalize'; @import 'base/typography'; +@import 'base/reset'; @import 'base/scrollbar'; // Components @@ -14,13 +16,16 @@ @import 'chat/chatbox'; @import 'main/tooltips'; @import 'components/achievement'; +@import 'components/alert'; @import 'components/article-preview'; @import 'components/bbcode-input'; @import 'components/bbcode-rendered'; +@import 'components/collection-card'; @import 'components/comment'; @import 'components/comparison'; @import 'components/data-table'; @import 'components/dialog'; +@import 'components/emoji'; @import 'components/featured-pane'; @import 'components/form/button'; @import 'components/form/checkbox'; @@ -40,12 +45,14 @@ @import 'components/forum/topic-listing'; @import 'components/forum/topic-tag'; @import 'components/key-value'; +@import 'components/mediahub-card'; @import 'components/mediainfo'; @import 'components/meta'; @import 'components/pagination'; @import 'components/panel'; @import 'components/playlist'; @import 'components/quick_search'; +@import 'components/swal'; @import 'components/torrent-card'; @import 'components/user-active'; @import 'components/user-card'; diff --git a/resources/sass/base/_normalize.scss b/resources/sass/base/_normalize.scss new file mode 100644 index 000000000..32f3c0ed0 --- /dev/null +++ b/resources/sass/base/_normalize.scss @@ -0,0 +1,288 @@ +/* +MIT License + +Copyright (c) Nicolas Gallagher +Copyright (c) Jonathan Neal +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ + +/* +Document +======== +*/ + +/** +Use a better box model (opinionated). +*/ + +*, +::before, +::after { + box-sizing: border-box; +} + +html { + /* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */ + font-family: + system-ui, + 'Segoe UI', + Roboto, + Helvetica, + Arial, + sans-serif, + 'Apple Color Emoji', + 'Segoe UI Emoji'; + line-height: 1.15; /* 1. Correct the line height in all browsers. */ + -webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */ + -moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */ + tab-size: 4; /* 3 */ +} + +/* +Sections +======== +*/ + +body { + margin: 0; /* Remove the margin in all browsers. */ +} + +/* +Grouping content +================ +*/ + +/** +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +*/ + +hr { + height: 0; /* 1 */ + color: inherit; /* 2 */ +} + +/* +Text-level semantics +==================== +*/ + +/** +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr[title] { + text-decoration: underline dotted; +} + +/** +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/** +1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) +2. Correct the odd 'em' font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: + ui-monospace, + SFMono-Regular, + Consolas, + 'Liberation Mono', + Menlo, + monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/** +Prevent 'sub' and 'sup' elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +Tabular data +============ +*/ + +/** +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +*/ + +table { + text-indent: 0; /* 1 */ + border-color: inherit; /* 2 */ +} + +/* +Forms +===== +*/ + +/** +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/** +Correct the inability to style clickable types in iOS and Safari. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} + +/** +Remove the inner border and padding in Firefox. +*/ + +::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** +Restore the focus styles unset by the previous rule. +*/ + +:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** +Remove the additional ':invalid' styles in Firefox. +See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737 +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/** +Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers. +*/ + +legend { + padding: 0; +} + +/** +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/** +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/** +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to 'inherit' in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* +Interactive +=========== +*/ + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} diff --git a/resources/sass/base/_reset.scss b/resources/sass/base/_reset.scss new file mode 100644 index 000000000..9dcd39d3e --- /dev/null +++ b/resources/sass/base/_reset.scss @@ -0,0 +1,34 @@ +html { + -webkit-tap-highlight-color: transparent; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + height: auto; + font-size: 10px; +} + +body, +figure { + margin: 0; + height: auto; +} + +body { + font-size: 16px; + line-height: 1.46666667; + color: var(--body-fg); + background: var(--body-bg); +} + +a { + text-decoration: none; +} + +code, +pre { + font-family: 'Roboto Mono', Menlo, Monaco, Consolas, 'Courier New', monospace; + font-size: 12px; + line-height: 1.46666667; + white-space: pre-wrap; + white-space: -moz-pre-wrap; + white-space: -o-pre-wrap; +} diff --git a/resources/sass/base/_typography.scss b/resources/sass/base/_typography.scss index 94a7979b3..c7aded47f 100644 --- a/resources/sass/base/_typography.scss +++ b/resources/sass/base/_typography.scss @@ -1,5 +1,12 @@ html { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + tab-size: 4; +} + +.fa { + -moz-osx-font-smoothing: grayscale; } .fa:before, diff --git a/resources/sass/chat/chatbox.scss b/resources/sass/chat/chatbox.scss index 142cc3d12..acbb4ec41 100644 --- a/resources/sass/chat/chatbox.scss +++ b/resources/sass/chat/chatbox.scss @@ -554,4 +554,241 @@ } } +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.list-group { + margin-bottom: 0; + padding-left: 0; + font-size: 17px; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.nav-tabs > li > a { + background-color: #dcdcdc; + color: #696969; +} + +.badge-extra, +.badge-user { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 13px; + font-weight: 400; + line-height: 1; + vertical-align: middle; + text-align: center; + background-color: transparent; + border-radius: 2px; + margin-left: 2px; + white-space: nowrap; +} + +.badge-user { + border: 1px solid #b6daf2; + box-shadow: 0 5px 5px rgba(93, 93, 93, 0.2); + border-radius: 5px; +} + +.badge-extra { + border: 1px solid rgba(186, 205, 225, 0.61); + border-radius: 10px; + background: rgba(76, 79, 80, 0.14); +} + +.mb-0 { + margin-bottom: 0; +} + +.mt-5 { + margin-top: 5px; +} + +.mb-5 { + margin-bottom: 5px; +} + +.button-holder { + line-height: normal !important; + display: table; + width: 100%; + margin: 0 0 5px 0 !important; + padding: 0 !important; +} +.button-center { + display: table-cell; + width: 100%; + text-align: center; +} +.button-left { + display: table-cell; + width: 50%; + text-align: left; +} +.button-right { + display: table-cell; + width: 50%; + text-align: right; +} +.button-right-small { + display: table-cell; + width: 30%; + text-align: right; +} +.no-space { + margin: 0 !important; + padding: 0 !important; + line-height: initial !important; +} +@media screen and (max-width: 768px) { + .button-holder { + display: block; + width: 100%; + text-align: center; + } + .button-left { + display: block; + width: 100%; + text-align: center; + } + .button-right { + display: block; + width: 100%; + text-align: center; + } +} + +.circle { + border-radius: 100% !important; +} + +.message { + padding: 10px; +} + +#subject { + margin-top: 0; + margin-bottom: 1em; +} + +.shoutbox { + width: 100%; + bottom: -1px; + margin-bottom: 10px; + border-radius: 0; +} + +.shoutbox .list-group { + height: 610px; + overflow-y: auto; +} + +.shoutbox .list-group-item-heading, +.shoutbox p { + margin-top: 5px; +} + +.panel-chat { + border-color: #ddd; +} + +.panel-chat .close { + color: #fff; + position: absolute; + top: 8px; + right: 16px; +} + +.width-table { + width: 100%; + display: table; +} +.width-75 { + width: 75%; + display: table-cell; + text-align: right; +} + +@media screen and (max-width: 1440px) { + .width-75 { + width: 100%; + display: block; + } +} + +/* Chat Message Bubbles +============================================================================ + +/* Message avatar */ +.sent > a { + height: 100%; + position: absolute; + bottom: 0; +} +.sent > a > img { + display: block !important; + height: 100%; + position: absolute; + bottom: 4px; +} +/* Avatar */ +#frame .content .messages ul li.sent img.chat-user-image { + height: 40px; + width: 40px; +} +/* Message header */ +.sent > h4 { + display: block !important; + border-top-left-radius: 15px; + border-top-right-radius: 15px; + background-color: var(--message-bubble-bg); + padding: 4px 12px 0 8px; + margin: 4px 12px 0 48px; +} +/* Message text */ +.sent > div { + display: block !important; + border-bottom-right-radius: 15px; + background-color: var(--message-bubble-bg); + padding: 0 12px 4px 8px !important; + margin: 0 12px 4px 48px !important; +} +/* Bot messages */ +.sent > .system { + border-bottom-left-radius: 15px; +} +/* Message triangle tip */ +.sent > div:not(.system):before { + content: ''; + position: absolute; + bottom: 4px; + left: 38px; + width: 0; + border-right: 10px solid var(--message-bubble-bg); + border-top: 10px solid transparent; + /* border-bottom: 10px solid transparent; */ +} +/* Entire Message */ +#frame .content .messages ul li.sent { + border: 0; + display: table; + max-width: 85%; + width: auto; +} +/* Timestamp */ +#frame .content .messages ul li.sent h4 .text-muted { + float: none; +} + + @import './_media-querys'; diff --git a/resources/sass/components/_alert.scss b/resources/sass/components/_alert.scss new file mode 100644 index 000000000..dcd07e341 --- /dev/null +++ b/resources/sass/components/_alert.scss @@ -0,0 +1,19 @@ +.alerts { + display: flex; + flex-direction: column; + gap: var(--alert-gap-width); + background-color: var(--alert-gap-color); +} + +.alert { + padding: 18px; + margin: 0; + display: grid; + place-items: center; + background-color: var(--alert-bg); + color: var(--alert-fg); +} + +.alert__content { + text-align: center; +} diff --git a/resources/sass/components/_bbcode-input.scss b/resources/sass/components/_bbcode-input.scss index 7357d5925..a5494ec43 100644 --- a/resources/sass/components/_bbcode-input.scss +++ b/resources/sass/components/_bbcode-input.scss @@ -9,7 +9,7 @@ .bbcode-input__tab-input { opacity: 0; - position: absolute !important; /* !important is necessary until site-wide radio button styling is removed */ + position: absolute; } .bbcode-input__tab-label { @@ -40,6 +40,7 @@ border-top-left-radius: var(--bbcode-input-border-radius); display: flex; align-items: center; + margin: 0; } .bbcode-input__icon-bar { @@ -53,12 +54,7 @@ list-style-type: none; } -.bbcode-input__icon-bar abbr { - all: revert !important; /* can be removed once site-wide styling is removed */ -} - .bbcode-input__icon-separator { - all: revert; /* can be removed once site-wide
styles are removed */ margin: 11px 4px; align-self: stretch; } @@ -66,6 +62,7 @@ .bbcode-input__icon-bar-toggle { grid-area: toggle; border-top-right-radius: var(--bbcode-input-border-radius); + margin: 0; } .bbcode-input__input { diff --git a/resources/sass/components/_bbcode-rendered.scss b/resources/sass/components/_bbcode-rendered.scss index a9b556808..f6e0b14c2 100644 --- a/resources/sass/components/_bbcode-rendered.scss +++ b/resources/sass/components/_bbcode-rendered.scss @@ -13,25 +13,14 @@ display: block; } - summary { - display: list-item; + figure { + margin: 1em 40px; } [hidden] { display: none !important; } - a { - background-color: transparent; - color: var(--bbcode-rendered-accent-fg); - text-decoration: none; - } - - a:active, - a:hover { - outline-width: 0; - } - abbr[title] { border-bottom: none; text-decoration: underline dotted; @@ -46,14 +35,6 @@ font-style: italic; } - h1 { - margin: 0.67em 0; - font-weight: 600; - padding-bottom: 0.3em; - font-size: 30px; - border-bottom: 1px solid var(--bbcode-rendered-border-muted); - } - mark { background-color: var(--bbcode-rendered-attention-subtle); color: var(--bbcode-rendered-text-primary); @@ -63,6 +44,8 @@ font-size: 90%; } + /* Subscript/Superscript */ + sub, sup { font-size: 75%; @@ -79,23 +62,23 @@ top: -0.5em; } - img { - border-style: none; - max-width: 100%; - box-sizing: content-box; - background-color: var(--bbcode-rendered-canvas-default); + /* Links */ + + a { + background-color: transparent; + color: var(--bbcode-rendered-accent-fg); + text-decoration: none; + + &:hover { + text-decoration: underline; + } + + &:active, &:hover { + outline-width: 0; + } } - code, - kbd, - pre, - samp { - font-family: monospace, monospace; - } - - figure { - margin: 1em 40px; - } + /* Horizontal Rules */ hr { box-sizing: content-box; @@ -109,107 +92,31 @@ border: 0; } - input { - font: inherit; - margin: 0; - overflow: visible; - font-family: inherit; - font-size: inherit; - line-height: inherit; - } + /* Spoilers */ - [type="button"], - [type="reset"], - [type="submit"] { - -webkit-appearance: button; - } - - [type="button"]::-moz-focus-inner, - [type="reset"]::-moz-focus-inner, - [type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; - } - - [type="button"]:-moz-focusring, - [type="reset"]:-moz-focusring, - [type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; - } - - [type="checkbox"], - [type="radio"] { - box-sizing: border-box; - padding: 0; - } - - [type="number"]::-webkit-inner-spin-button, - [type="number"]::-webkit-outer-spin-button { - height: auto; - } - - [type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; - } - - [type="search"]::-webkit-search-cancel-button, - [type="search"]::-webkit-search-decoration { - -webkit-appearance: none; - } - - ::-webkit-input-placeholder { - color: inherit; - opacity: 0.54; - } - - ::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; - } - - a:hover { - text-decoration: underline; - } - - hr::before { - display: table; - content: ""; - } - - hr::after { - display: table; - clear: both; - content: ""; - } - - table { - border-spacing: 0; - border-collapse: collapse; - display: block; - width: max-content; + details { + padding: 0 6px; + margin-top: 0; + margin-bottom: 2px; + display: inline; max-width: 100%; - overflow: auto; + + summary { + cursor: pointer; + display: list-item; + } + + &:not([open]) > *:not(summary) { + display: none !important; + } } - td, - th { - padding: 0; - } - - details summary { - cursor: pointer; - } - - details:not([open]) > *:not(summary) { - display: none !important; - } + /* Keyboard inputs */ kbd { display: inline-block; padding: 3px 5px; - font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; + font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace; line-height: 10px; color: var(--bbcode-rendered-fg-default); vertical-align: middle; @@ -220,6 +127,8 @@ box-shadow: inset 0 -1px 0 var(--bbcode-rendered-neutral-muted); } + /* Headings */ + h1, h2, h3, @@ -230,6 +139,19 @@ margin-bottom: 16px; font-weight: 600; line-height: 1.25; + + code { + padding: 0 0.2em; + font-size: inherit; + } + } + + h1 { + margin: 0.67em 0; + font-weight: 600; + padding-bottom: 0.3em; + font-size: 30px; + border-bottom: 1px solid var(--bbcode-rendered-border-muted); } h2 { @@ -255,10 +177,7 @@ color: var(--bbcode-rendered-fg-muted); } - p { - margin-top: 0; - margin-bottom: 10px; - } + /* Quoting */ blockquote { margin-left: 2px; @@ -269,72 +188,19 @@ font-size: 15px; background-color: var(--bbcode-rendered-quote-bg); border-radius: 6px; + + > cite { + font-size: 12px; + font-weight: bold; + } + + > blockquote { + margin-left: 6px; + margin-right: 20px; + } } - blockquote > cite { - font-size: 12px; - font-weight: bold; - } - - blockquote > blockquote { - margin-left: 6px; - margin-right: 20px; - } - - ul, - ol { - margin-top: 0; - margin-bottom: 0; - padding-left: 2em; - } - - ol ol, - ul ol { - list-style-type: lower-roman; - } - - ul ul ol, - ul ol ol, - ol ul ol, - ol ol ol { - list-style-type: lower-alpha; - } - - dd { - margin-left: 0; - } - - tt, - code { - font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - font-size: 12px; - } - - pre { - background-color: var(--bbcode-rendered-neutral-muted); - color: var(--bbcode-rendered-fg-default); - border: revert; - border-radius: 6px; - margin-top: 0; - margin-bottom: 0; - font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - font-size: 12px; - word-wrap: normal; - } - - ::placeholder { - color: var(--bbcode-rendered-fg-subtle); - opacity: 1; - } - - input::-webkit-outer-spin-button, - input::-webkit-inner-spin-button { - margin: 0; - -webkit-appearance: none; - appearance: none; - } + /* Clearfix */ &::before { display: table; @@ -347,10 +213,7 @@ content: ""; } - a:not([href]) { - color: inherit; - text-decoration: none; - } + /* Block Elements */ p, blockquote, @@ -368,62 +231,43 @@ margin-bottom: 12px; } - details { - padding: 0 6px; - margin-top: 0; - margin-bottom: 2px; - display: inline; - max-width: 100%; + /* Lists */ + + ul, + ol { + padding-left: 2em; + + ol { + list-style-type: lower-roman; + } + + ul, ol { + margin-top: 0; + margin-bottom: 0; + ol { + list-style-type: lower-alpha; + } + } } - sup > a::before { - content: "["; - } + ol { + &[type="1"] { + list-style-type: decimal; + } - sup > a::after { - content: "]"; - } + &[type="a"] { + list-style-type: lower-alpha; + } - h1 tt, - h1 code, - h2 tt, - h2 code, - h3 tt, - h3 code, - h4 tt, - h4 code, - h5 tt, - h5 code, - h6 tt, - h6 code { - padding: 0 0.2em; - font-size: inherit; - } - - ol[type="1"] { - list-style-type: decimal; - } - - ol[type="a"] { - list-style-type: lower-alpha; - } - - ol[type="i"] { - list-style-type: lower-roman; + &[type="i"] { + list-style-type: lower-roman; + } } div > ol:not([type]) { list-style-type: decimal; } - ul ul, - ul ol, - ol ol, - ol ul { - margin-top: 0; - margin-bottom: 0; - } - li > p { margin-top: 16px; } @@ -432,59 +276,104 @@ margin-top: 0.25em; } + /* Definition Lists */ + dl { padding: 0; } - dl dt { + dt { padding: 0; margin-top: 16px; font-style: italic; font-weight: 600; } - dl dd { + dd { padding: 0 16px; margin-bottom: 16px; + margin-left: 0; } - table th { + /* Tables */ + + table { + border-spacing: 0; + border-collapse: collapse; + display: block; + width: max-content; + max-width: 100%; + overflow: auto; + + img { + background-color: transparent; + } + } + + th { font-weight: 600; } - table th, - table td { + th, td { border: revert !important; padding: 6px 13px; background-color: var(--bbcode-rendered-canvas-default); border: 1px solid var(--bbcode-rendered-border-default) !important; } - table tr { + tr { border: revert; background-color: var(--bbcode-rendered-canvas-default) !important; border-top: 1px solid var(--bbcode-rendered-border-muted); + + &:nth-child(2n), + &:nth-child(2n) td { + background-color: var(--bbcode-rendered-canvas-subtle); + } } - table tr:nth-child(2n), - table tr:nth-child(2n) td { - background-color: var(--bbcode-rendered-canvas-subtle); + /* Images */ + + img { + border-style: none; + max-width: 100%; + box-sizing: content-box; + background-color: var(--bbcode-rendered-canvas-default); + + &[align="right"] { + padding-left: 20px; + } + + &[align="left"] { + padding-right: 20px; + } } - table img { - background-color: transparent; - } - - img[align="right"] { - padding-left: 20px; - } - - img[align="left"] { - padding-right: 20px; - } + /* Code (TODO: Figure out which styles are actually needed for code/inline code/spoiler content) */ code, - tt { + kbd, + pre, + samp { + font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace; + } + + pre { + background-color: var(--bbcode-rendered-neutral-muted); + color: var(--bbcode-rendered-fg-default); + border: revert; + border-radius: 6px; + font-size: 12px; + word-wrap: normal; + overflow: visible; + line-height: inherit; + word-break: break-word; + overflow-wrap: anywhere; + white-space: pre-wrap; + padding: 12px; + } + + code { padding: 0.2em 0.4em; margin: 0; word-break: normal; @@ -493,6 +382,8 @@ font-size: 13px; background-color: var(--bbcode-rendered-neutral-muted); border-radius: 6px; + font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, + Liberation Mono, monospace; } del code { @@ -500,99 +391,92 @@ } pre > code { - padding: 0; - margin: 0; - word-break: normal; - overflow-wrap: anywhere; white-space: pre-wrap; - background: transparent; - border: 0; } - pre code, - pre tt { + pre code { display: inline; padding: 0; - margin: 0; overflow: visible; line-height: inherit; word-wrap: normal; - word-break: normal; - overflow-wrap: anywhere; background-color: transparent; border: 0; } - pre { - overflow: visible; - line-height: inherit; - word-wrap: normal; - word-break: break-word; - overflow-wrap: anywhere; - white-space: pre-wrap; + /* Markdown Extra footnotes */ + + sup { + > a::before { + content: "["; + } + + > a::after { + content: "]"; + } } .footnotes { font-size: 12px; color: var(--bbcode-rendered-fg-muted); border-top: 1px solid var(--bbcode-rendered-border-default); + + ol { + padding-left: 16px; + } + + li { + position: relative; + + &:target { + color: var(--bbcode-rendered-fg-default); + + &::before { + position: absolute; + top: -8px; + right: -8px; + bottom: -8px; + left: -24px; + pointer-events: none; + content: ""; + border: 2px solid var(--bbcode-rendered-accent-emphasis); + border-radius: 6px; + } + } + } + + .footnote-backref { + font-family: monospace; + } } - .footnotes ol { - padding-left: 16px; - } - - .footnotes li { - position: relative; - } - - .footnotes li:target::before { - position: absolute; - top: -8px; - right: -8px; - bottom: -8px; - left: -24px; - pointer-events: none; - content: ""; - border: 2px solid var(--bbcode-rendered-accent-emphasis); - border-radius: 6px; - } - - .footnotes li:target { - color: var(--bbcode-rendered-fg-default); - } - - .footnotes .footnote-backref { - font-family: monospace; - } - - ::-webkit-calendar-picker-indicator { - filter: invert(50%); - } + /* BBCode [alert] */ .bbcode-rendered__alert { border-radius: 5px; padding: 8px; border: 2px solid var(--bbcode-rendered-danger-fg); + + &::before { + content: 'Alert: '; + color: var(--bbcode-rendered-danger-fg); + display: inline-block; + padding-right: 1ch; + } } - .bbcode-rendered__alert::before { - content: 'Alert: '; - color: var(--bbcode-rendered-danger-fg); - display: inline-block; - padding-right: 1ch; - } + /* BBCode [note] */ .bbcode-rendered__note { border-radius: 4px; padding: 8px; border: 2px solid var(--bbcode-rendered-attention-subtle); - } - .bbcode-rendered__note::before { - content: 'Note: '; - color: var(--bbcode-rendered-attention-subtle); - display: inline-block; - padding-right: 1ch; + &::before { + content: 'Note: '; + color: var(--bbcode-rendered-attention-subtle); + display: inline-block; + padding-right: 1ch; + } } } diff --git a/resources/sass/components/_collection-card.scss b/resources/sass/components/_collection-card.scss new file mode 100644 index 000000000..8afc6b90b --- /dev/null +++ b/resources/sass/components/_collection-card.scss @@ -0,0 +1,37 @@ +.collection__list { + display: flex; + flex-direction: column; + gap: 16px; + margin: 0; + padding: 0; +} + +.collection__list-item { + list-style: none; +} + +.collection { + height: 300px; + padding: 16px; + border-radius: 16px; + background-blend-mode: multiply; + background-size: cover; + position: relative; + overflow: hidden; + color: var(--collection-fg); +} + +.collection__link { + color: var(--collection-fg) +} + +.collection__backdrop { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 100%; + height: 100%; + object-fit: cover; +} \ No newline at end of file diff --git a/resources/sass/components/_data-table.scss b/resources/sass/components/_data-table.scss index a408e553e..e1be60d9e 100644 --- a/resources/sass/components/_data-table.scss +++ b/resources/sass/components/_data-table.scss @@ -9,13 +9,6 @@ overflow-x: auto; } -.data-table > tr, -.data-table > thead > tr, -.data-table > tbody > tr, -.data-table > tfoot > tr { - border: 0 !important; /* Can be removed after global table styles are removed */ -} - /* header */ .data-table > tr > th, .data-table > thead > tr > th, @@ -38,11 +31,6 @@ font-size: 14px; } -.data-table > tr:not(.data-table > tr:last-child) > td, -.data-table > tbody > tr:not(.data-table > tbody > tr:last-child) > td { - border-bottom: var(--data-table-tr-border) !important; /* !important can be removed after global table styles are removed */ -} - .data-table tr:nth-child(even) > td { background-color: var(--data-table-tr-even-bg); } diff --git a/resources/sass/components/_emoji.scss b/resources/sass/components/_emoji.scss new file mode 100644 index 000000000..1d4e7f911 --- /dev/null +++ b/resources/sass/components/_emoji.scss @@ -0,0 +1,14 @@ +.joypixels { + height: 3ex; + width: 3.1ex; + min-height: 20px; + min-width: 20px; + margin: -0.2ex 0.15em 0.2ex; + line-height: normal; + font-size: inherit; + display: inline-block; +} + +img.joypixels { + width: auto; +} diff --git a/resources/sass/components/_form.scss b/resources/sass/components/_form.scss index 84e5f75e5..0e16c118a 100644 --- a/resources/sass/components/_form.scss +++ b/resources/sass/components/_form.scss @@ -12,7 +12,6 @@ .form__group { background-color: inherit; position: relative; - margin-top: 0 !important; /* Can be removed once site-wide

styles are removed */ } /* Form labels */ @@ -20,7 +19,6 @@ .form__label { user-select: none; font-size: 14px; - font-weight: normal !important; /* Needed until site-wide

- +
+
diff --git a/resources/views/Staff/moderation/index.blade.php b/resources/views/Staff/moderation/index.blade.php index c527b067a..55038a6c8 100644 --- a/resources/views/Staff/moderation/index.blade.php +++ b/resources/views/Staff/moderation/index.blade.php @@ -52,7 +52,7 @@ @@ -137,7 +137,7 @@ @@ -235,7 +235,7 @@ diff --git a/resources/views/components/torrent/row.blade.php b/resources/views/components/torrent/row.blade.php index 74155ada1..f93646d58 100644 --- a/resources/views/components/torrent/row.blade.php +++ b/resources/views/components/torrent/row.blade.php @@ -85,7 +85,7 @@ /> @else $torrent->category->movie_meta || $torrent->category->tv_meta, diff --git a/resources/views/layout/default.blade.php b/resources/views/layout/default.blade.php index 71e9164bc..e23525b01 100755 --- a/resources/views/layout/default.blade.php +++ b/resources/views/layout/default.blade.php @@ -4,7 +4,10 @@ @include('partials.head') - @include('cookie-consent::index') +
+ @include('cookie-consent::index') + @include('partials.alerts') +
@include('partials.top_nav') - @include('partials.alerts') @if (Session::has('achievement')) @include('partials.achievement_modal') @endif diff --git a/resources/views/livewire/collection-search.blade.php b/resources/views/livewire/collection-search.blade.php index 43ea69b0b..e8571a38e 100644 --- a/resources/views/livewire/collection-search.blade.php +++ b/resources/views/livewire/collection-search.blade.php @@ -20,59 +20,35 @@
{{ $collections->links('partials.pagination') }}
- @foreach ($collections as $collection) -
-
-
+ @foreach ($collections as $collection) +
  • +
    -
    -
    -

    {{ $collection->name }}

    -

    - {{ __('mediahub.includes') }} - @foreach ($collection->movie as $collection_movie) - {{ $collection_movie->title }}, - @endforeach -

    - + ), + url({{ isset($collection->backdrop) ? tmdb_image('back_big', $collection->backdrop) : 'https://via.placeholder.com/1280x300' }}); + " + > +

    - - {{ __('mediahub.view-collection') }} + {{ $collection->name }} -

    -
  • -
    -
    - @endforeach + +

    + {{ __('mediahub.includes') }} + {{ $collection->movie->pluck('title')->implode(',') }} +

    + + + @endforeach +
    {{ $collections->links('partials.pagination') }} diff --git a/resources/views/livewire/company-search.blade.php b/resources/views/livewire/company-search.blade.php index ca344dc3c..e187bb75f 100644 --- a/resources/views/livewire/company-search.blade.php +++ b/resources/views/livewire/company-search.blade.php @@ -19,32 +19,35 @@ {{ $companies->links('partials.pagination') }} -
    - @foreach ($companies as $company) - -
    -

    - @if (isset($company->logo)) - {{ $company->name }} - @else - {{ $company->name }} - @endif -

    - -

    - - {{ $company->tv_count }} Shows | {{ $company->movie_count }} Movies -

    -
    -
    - @endforeach +
    +
    {{ $companies->links('partials.pagination') }} diff --git a/resources/views/livewire/dislike-button.blade.php b/resources/views/livewire/dislike-button.blade.php index c3cff505e..f5b551c94 100644 --- a/resources/views/livewire/dislike-button.blade.php +++ b/resources/views/livewire/dislike-button.blade.php @@ -5,7 +5,7 @@ > @if ($post->dislikes_exists) @else diff --git a/resources/views/livewire/includes/_tooltip.blade.php b/resources/views/livewire/includes/_tooltip.blade.php deleted file mode 100644 index 44bb1f44f..000000000 --- a/resources/views/livewire/includes/_tooltip.blade.php +++ /dev/null @@ -1,79 +0,0 @@ -
    -
    -
    -
    -
    - @if ($torrent->category->movie_meta || $torrent->category->tv_meta) - {{ __('torrent.poster') }} - @endif - - @if ($torrent->category->game_meta && isset($meta) && $meta->cover->image_id && $meta->name) - ' - data-image='{{ __('torrent.poster') }}' - class="torrent-poster-img-small show-poster" - alt="{{ __('torrent.poster') }}" - /> - @endif - - @if ($torrent->category->no_meta || $torrent->category->music_meta) - ' - class="torrent-poster-img-small show-poster" - alt="{{ __('torrent.poster') }}" - /> - @endif -
    - -
    - -
    -
    diff --git a/resources/views/livewire/like-button.blade.php b/resources/views/livewire/like-button.blade.php index 25eee5a0d..3c5699ab6 100644 --- a/resources/views/livewire/like-button.blade.php +++ b/resources/views/livewire/like-button.blade.php @@ -4,7 +4,9 @@ title="{{ __('forum.like-post') }}" > @if ($post->likes_exists) - + @else @endif diff --git a/resources/views/livewire/network-search.blade.php b/resources/views/livewire/network-search.blade.php index 1fbd6909a..12477e12b 100644 --- a/resources/views/livewire/network-search.blade.php +++ b/resources/views/livewire/network-search.blade.php @@ -19,34 +19,35 @@
    {{ $networks->links('partials.pagination') }} -
    - @forelse ($networks as $network) - -
    -

    - @if (isset($network->logo)) - {{ $network->name }} - @else - {{ $network->name }} - @endif -

    - -

    - - {{ $network->tv_count }} Shows -

    -
    -
    - @empty - No {{ __('mediahub.networks') }} - @endforelse +
    +
    {{ $networks->links('partials.pagination') }} diff --git a/resources/views/livewire/subtitle-search.blade.php b/resources/views/livewire/subtitle-search.blade.php index 8d77def6b..e6bdf25de 100644 --- a/resources/views/livewire/subtitle-search.blade.php +++ b/resources/views/livewire/subtitle-search.blade.php @@ -6,7 +6,7 @@
    {{ __('common.name') }}
    - +
    {{ __('torrent.torrent') }} @include('livewire.includes._sort-icon', ['field' => 'title']) @@ -44,7 +44,7 @@ @if ($subtitle->torrent->category->image === null) @else diff --git a/resources/views/livewire/tv-search.blade.php b/resources/views/livewire/tv-search.blade.php index 15ac93938..37c0eed96 100644 --- a/resources/views/livewire/tv-search.blade.php +++ b/resources/views/livewire/tv-search.blade.php @@ -24,12 +24,12 @@
    - + {{ $show->seasons_count }} Seasons @if ($show->networks) @foreach ($show->networks as $network) - + {{ $network->name }} @endforeach diff --git a/resources/views/livewire/warning-log-search.blade.php b/resources/views/livewire/warning-log-search.blade.php index b13f4d8cb..4f1374567 100644 --- a/resources/views/livewire/warning-log-search.blade.php +++ b/resources/views/livewire/warning-log-search.blade.php @@ -83,7 +83,7 @@
    - +
    diff --git a/resources/views/mediahub/genre/index.blade.php b/resources/views/mediahub/genre/index.blade.php index 0a4a674b7..7eb2e893a 100644 --- a/resources/views/mediahub/genre/index.blade.php +++ b/resources/views/mediahub/genre/index.blade.php @@ -22,24 +22,25 @@ @section('content')

    {{ __('common.genres') }}

    -
    @endsection diff --git a/resources/views/mediahub/index.blade.php b/resources/views/mediahub/index.blade.php index 77ec45580..f885fe284 100644 --- a/resources/views/mediahub/index.blade.php +++ b/resources/views/mediahub/index.blade.php @@ -17,63 +17,73 @@ @section('main')

    {{ __('mediahub.title') }}

    -
    @endsection diff --git a/resources/views/mediahub/tv/season/show.blade.php b/resources/views/mediahub/tv/season/show.blade.php index 135878d7f..20c5fc4d7 100755 --- a/resources/views/mediahub/tv/season/show.blade.php +++ b/resources/views/mediahub/tv/season/show.blade.php @@ -39,7 +39,7 @@ style="margin-top: 0; margin-bottom: 20px; height: auto" >
    - + Episode {{ $episode->episode_number }}
    diff --git a/resources/views/mediahub/tv/show.blade.php b/resources/views/mediahub/tv/show.blade.php index 10e224f35..891df42bf 100644 --- a/resources/views/mediahub/tv/show.blade.php +++ b/resources/views/mediahub/tv/show.blade.php @@ -34,10 +34,10 @@ style="height: auto; margin-top: 0; margin-bottom: 20px" >
    - + {{ $season->episodes->count() }} Episodes - + Season {{ $season->season_number }}
    @@ -73,7 +73,7 @@ data-target="#{{ $season->season_number }}" > - + {{ $season->torrents->where('season_number', '=', $season->season_number)->count() }} Torrents Matched @@ -82,10 +82,8 @@