* feat: ✨ add solarized dark and solarized light color scheme
Add the solarized dark and the solarized light color scheme, as well as accent colors and icons
* fix: 🐛 make colors more readable | forgot colors
Made colors, especially in light mode, more readable.
* feat: ✨ add missing solarized-light branch
Add a missing Solarized-Light branch to the check
* remove trailing empty line
Remove a useless empty line
* modify share button to match light/dark theme
* match index.js color with bg-color
* fix: 🐛 distinguish destructable colors
Add some checks to make destructable colors distinguishable from non-harming ones
* fix: 🐛 improve color contrast/readability
* fix: 🐛 improve color contrast/readability for main colors
* refactor: ♻️ group primary and secondary theme colors by light/dark
* fix: 🐛 remove difference between main/sec grouping
* fix: 🐛 add missing mainSolarizedYellow styling
---------
Co-authored-by: DontBlameMe <32d1938e-18da-413a-853a-ccec6ded1347@slmails.com>
* Add back refresh-widget box-shadow for desktop view
* Change refresh widget left border color to match box-shadow, & have it disappear on mobile view
* Show error message when search is over 100 characters
* Address review comments
* Address review comments
* #4992 - Review comment changes
* Code review changes - Move search character limit value to constants.js
* Update comment based on review
* Fix incorrect check in privacy settings
* Update prompt names to be more specific for playlist remove watched / delete playlist buttons
* Update banner close button color
* Add destructive styling to destructive actions in FreeTube, including prompt confirmations
* Improve destructive action label clarity
* Implement darker red only if red theme is selected
* Fix experimental settings bug
* Update to use fallback destructive colors
* Remove color from 'Cancel' prompt buttons
* Add icon capability to ft-buttons, & attach trash icon to destructive buttons
* Change yellow destructive fallback text color to black for readability
* Change red color to have an accessible color contrast
* Update red color to lighter color closer to original to avoid conflict
* Tentatively codify black as new corresponding text color for red and draculaRed
* Alter red theme text color to white
* Make affirmative label clearer for Ask Before Opening prompt
* Make restart prompt not destructive
* Add title and aria-pressed attributes to filter button
* Add radio button hover and focus styling with accent-color
* Programmatically apply focus after clicking to open filter
* Implement filter-button-visible icon styling
* Use more standard means to grab grandchild ref
* Make search filters heading not selectable
* Additional icon and radio button styling updates
* Implement modal focus management with portal-vue
For the importance of modal focus management, see: https://accessibility.huit.harvard.edu/technique-accessible-modal-dialogs
* Add themes for handling ft-prompt styling
This is a portal-compatible way of affecting prompt styling, as ':deep' does not work for portals.
* Require title in ft-prompt to ensure accessible properties are functional
* Set initial radio button value on load
* Update App.vue
* Fix z-index and modal error issue
* Remove unnecessary additionl focus restoration logic in add-video-prompt
* Configure 'Enter' to submit form being edited
* Configure Ctrl+F keyboard listeners on pages with prominent search bar
* Move lambda data functions to methods
* Remove unnecessary 'return's
* Add Ctrl+F handling to Channel search bar
* Fix disabled ft-select label bug
* Fix linting issue
* Implement icons for all ft-selects
* Remove unnecessary v-if
* Update to use getIconForSortPreference util function with all arrows pointing down
* Update src/renderer/views/Playlist/Playlist.js
Co-authored-by: PikachuEXE <git@pikachuexe.net>
---------
Co-authored-by: PikachuEXE <git@pikachuexe.net>
* Set `ft-refresh-widget` to z-index of 3
It should be still high enough to be above watch progress, but below the search bar
* Remove `topNav` box-shadow which was previously hidden by z-index
* Implement first draft of last subscription refresh timestamp
* Update styling to be a top bar
* Update styling to be banner-compatible, & increase banner X button size on mobile
* Update subscription refresh timestamp to be relative
* Implement refresh timestamps for Shorts, Live, and Community tabs
* Extract refresh widget to its own component
* Add Trending and Popular refresh widgets with timestamps
* Fix justifying when no timestamp exists
* Move timestamps to utils store
* Remove unneeded ref classes and currentLocale computed property
* Add page-specific titles for each feed type
* Implement showing least recent cache date per profile
* Update styling property placement & match top nav box shadow on ft-refresh-widget
* Implement showing timestamp for profile only if all channel subscriptions can be found in cache
* Disable refresh button instead of removing it or the widget from the DOM
* Increase top banner's top margin
* Update channel caching calls to provide timestamps
* Modify updateCacheByChannel functions to have default timestamp of new Date()
* Fix 30-day month relative date calculation scenarios through new optional parameter
* Rectify Case 3 (see https://github.com/FreeTubeApp/FreeTube/pull/3668)
* Add back missing line in Popular.js
* Add back @double-great/stylelint-a11y Stylelint plugin
Notably, we choose to not use the 'a11y/no-outline-none' rule. The reason for this being that our focus ring suffices for almost every use case (https://www.w3.org/WAI/WCAG22/Understanding/focus-appearance-minimum), and using the same hover and focus styling can be considered bad design in many cases. YT goes the direction of foregoing the focus ring for many of its components and choosing a barely darker color than its :hover for :focus styling, which is controversial. Accessibility-wise, at the very least, using the same hover and focus styling can be confusing, especially for sighted users who use keyboard navigation.
* Add back stylelint-config-sass-guidelines
* Add back stylelint-config-standard
* Satisfy media-prefers-reduced-motion a11y rule
This is not recognized as a fix by the rule due to its limited detection logic, so this rule is not being imported directly.
* Remove duplicate code
* Implement linting fixes
* Implement _ft-list-item.scss linting fixes excluding no-descending-specificity
Properly implementing the no-descending-specificity rule in this file seems to utterly destroy the styling. This would be its own entire initiative to unravel.
* Restart from scratch modifications of _ft-list-item.scss
* Resolve styling discrepancies introduced with ft-list-channel and ft-tooltip
* Implement playlist sorting
* Hide sort menu for remote playlists
* Remove 'Custom (descending)' sort order
I don't see the need for this particular sort order.
* Adjust sort order & align dropdown with 'More Options' button
* Make 'Latest added first' default option instead of custom
* Remove unlikely-to-be-implemented 'Date published' sorting options
Context from absidue: 'I don't think we should even attempt to support it, due to all of the situations where it wouldn't be possible.'
* Update to use sortOrder as main variable throughout
* Hide sort menu for playlists of length <2
* * Update most paginated places to auto load next page (except comments)
* * Make comment section auto load next pages too
* $ Use new component to dedup auto load code
* * Implement auto load next page for single playlist page
* * Remove comment auto load setting
* * Update tooltip text
* Enable playlist video search mode by default; add Ctrl+F binding
* Fix subject-verb agreement on two search labels
* Remove playlist video search bar when only one video is in the playlist
* Add check for search video mode allowed that is requisite for keybinding
* Remove unnecessary 'async function' in mounted
* Fix styling issue
* Add aria-pressed attribute to playlist icon button
* Improve accessibility by adjusting stroke thickness of playlist icon
* Fix to keep the inactive hover state the same
* Update playlist icon active hover style
* Update playlist icon active hover color to --accent-color-hover
* Pick largest storyboard that is less than 90px tall
* Reduce storyboard size when window inner width is below 500
* Reduce code
* Only check the window inner width once
to avoid messing with the video player internals for storyboards
* Add back deleted line
* Add back trailing comma
* make slider precise as per playback speed
* Resolve type error in Default Playback
* Adjust the min value of playback slider in accordance to selected interval
* Fix min value of Default Playback
* Add back author search in video playlist searching
Reuses previous paradigm (the paradigm currently in place in History.js). This was the pre-existing behavior before the Playlist PR. See 5c8d49bf51/src/renderer/views/UserPlaylists/UserPlaylists.js (L98-L103).
* Update title/author search handling to not fail if only one of the base values is invalid
* Add author-searching to 'Find playlist with video' results
* Use `bookmark` icon for `Quick bookmark` feature
* Make bookmark icon primary colour
* Remove colour from fa-bookmark
* Make thumbnail icons fully visible instead of only 85% visible
* Make thumbnail icons very slightly larger
* Revert size change of bookmark icon and playlist add icon
* Revert `$thumbnail-overlay-opacity` and change icon opacity directly
* add i18n-eslint-plugin
* remove `FreeTube` `Invidious` and `YouTube` from locale files as those shouldn't be translated
* Remove testing code
* Uncomment code
* use separate getColorTranslations function
* make suggested changes
Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>
* Add back blank line between import & export
---------
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <git@pikachuexe.net>
* * Update icons for add to/remove from quick bookmark target button
* * Change quick bookmarked indicator to green
* * Stop importing star icon which is now unused
* * Update user playlists page to add search playlists with matching videos function
* * Update add videos to playlists prompt to add search playlists with matching videos function
* * Update UI & label text
* * Click on playlist link with search matching video enabled now also search for video when view switched
* * Only auto enable search video mode for playlists with video(s)
* * Make new toggle vertically align center
* * Make new toggle vertically align center
* Fix handling of video published date in video lists
* Use same date format on the history page as before
* Switch to months at 30 days instead of 32 and correct thresholds
* Add support for formatting as weeks
* According to Invidious everything on the popular tab is a short???
* Improve touch input on dash quality selector
- Add `touchstart` event to quality button which toggles the `vjs-lock-showing` class used on other quality selectors
- Call `this.handleClick` from touchstart (fixes issue with `e.target` not being correct)
MarmadileManteater/FreeTubeCordova#239
* Hide the dash quality selector on `focusout`
* Use `classList.*` methods over manually editing the attributes
* De-duplicate code
* Add back line break
* Allow scroll on dash quality selector when screen is narrow
* Use flag to determine if user is scrolling or tapping
* hide the quality selector on select
(just like the other quality selectors do on mobile)
* * Update single playlist view for user playlists to add search video function
* ! Fix load more button appears when searching & visible items under pagination limit
* * Show message when search returns no result
* * Make search button focused after existing search mode
* * Make search result show search result show original playlist item indexes
* * Make search button only appear with video count > 0
* Split view count and published date into two lines on small displays
* Add blank line
Co-authored-by: PikachuEXE <git@pikachuexe.net>
* Add blank line back
---------
Co-authored-by: PikachuEXE <git@pikachuexe.net>
* * Make video thumbnails have certain height before image loading starts to avoid layout shifts
* * Use "fallback to natural aspect ratio" feature of `aspect-ratio`
* fix some locale issues
* change local API to Local API
* update translation keys to `Falling back to Local API`
* fix translation key for local api in js files
* Set share playlist dropdown position to `center` w/ media query
* Remove overflow-y as it causes the overflow issue
Originally, when this overflow-y was added, the share playlist dropdown went straight down, so there would no need for the content to be able to overflow in the y direction. (FreeTubeApp/FreeTube#2281)
Now, the dropdown swings out to the left by default, and even when it is centered, it still overflows the width of the container as an intentional part of the design.
* Remove unnecessary whitespace