Joseph Milazzo 568ea9fd3a
Custom Theme Support (#1077)
* Started the migration to bootstrap 5. Introduced a breakpoint system that bootstrap reflects for our screens.

* sr only migrated

* mr/ml -> me/ms

* pl/pr -> ps/pe

* btn-block

* removed input-group-append

* Added form-label to all labels

* Added some style overrides for inputs

* Replaced form-group with mb-3

* Ignore journal files

* Update media to d-flex/flex-grow-1

* Fixed reading list detail page

* For develop builds, don't inline critical styles

* Fixed some downstream security issues

* Fixed a layout issue in series detail

* Fixed issue with btn-light not having background color. Updated layout for series detail metadata

* Cleaned up nav search

* Laid out the organization for custom theme components. Update _inputs.scss with variable overrides and depending on theme, it will just work.

* Lots of theming work

* Added inputs to the theme page

* Login and input placeholder changes

- Fixed login screen centering issue on all devices
- Changed the format of the login screen
- Change the input placeholder color

* Added checkbox styles

* Refactored tagbadges and removed some ngdeep selectors

* Added nav bar component and refactored some styles into event widget

* Cleaned nav events again and made dedicated popover body

* Finished pagination component

* Fixed up some styles with buttons

* refactored dropdown component

* Update accordion component

* Refactored breadcrumbs and rating star. Fixed a missing style for cards

* Fixed some styling issues on person badge, added modal component, and some global styles

* Finished moving everything within dark to component files

* Fixed up filter buttons, move card styles into a component theme, fixed slider style

* Refactored library card and grouped typeahead

* Updated normal typeahead component and reduced amount of ngdeep selector

* Refactored grid breakpoints to be available by css variable, but it's hardcoded into the app

* Ensure breakpoints are defined per theme

* Fixed up some styling overrides and customization for nav links and alt button

* Removed some deep styles, moved css out of splash container and brough back labels for login page

* Finished css variable refactor

* Refactored all the theme variable definitions into files for each theme.

* Added back bootstrap overrides

* Added a note about bootstrap theme colors being not-possible to swap out at runtime

* Cleaned up some dead code

* Implemented the ability to set a custom theme on the site. Cleaned up misc code throughout.

* Additional changes

- Fixed nav where "kavita" was not hiding correctly on small viewports
- Fixed search bar to make the behavior more consistent
- Fixed accordion buttons
- Changed accordion buttons to be more responsive
- Added radio button colors
- Fixed radios on theme test page
- Changed login and reset password card layouts to be more consistent.
- Added primary color shade for when darker shading is needed.

* Built a basic site, allow the user to apply different themes, refactored nav service code out.

* Implemented the ability update a user's theme

* Added unit tests for Scan and Get Content in SiteThemeService.

* Fixed a bug in the login code and Pref code which wasn't joining on SiteTheme table. Wrote Unit tests and the UI component to manage current theme.

* Implemented scan so that it manages custom themes with unit tests

* Component updates

- Repositioning style ordering
- Adding indicator override
- Adding select styles

* SignlaR integration, some fixes when creating custom entities, one single migration. Just login functionality left.

* More ui updated

- Added .no-hover to prevent hover on elements where not needed
- Changed all selects I could find to appropriate class
- Changed up nav tabs to work more like bootstrap tabs than pills
- Added padding to top of some containers to make styles consistent
- Added ability to change navbar fontawesome icon colors
- removed some unecessary inline styling
- Changed radio button to appropriate class
- Toned down primate color, a bit too bright for dark theme.
- Added ability to change button fontawesome icon color

* nav-tab fix for series-detail

* Added themes folder to gitignore

* Adding card overlay

* Fixing up light theme

* Everything is done. Only bug is that color-scheme isn't being set properly from css variable.

* Checkboxes have pointer by default. Confirm/Confirm email use default (dark) theme by default

* Fixed an error where color-scheme wasn't reflecting correctly on themes on first load

* Fixed user preferences not available on login

* Changing dual radios to switches and color tweaks

* disabled primary APCA fix

* button APCA fixes

* Fixed some timing issues with first load and image service

* Fixed swiper issues from upgrade

* Changed themes to be scss files again and adjusted Seed code

* Migrated carousel to css variables. Fixed a broken animation for search.

* Cleaned up some backend smells

* Fixed white border outline on nav tabs, added some variables for header

* Nav bar has been css variable-ified

* Added some basic eink stuff to make the app useable

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
2022-02-16 07:12:38 -08:00
2022-02-13 06:38:06 -08:00
2021-07-17 14:03:11 -05:00
2022-02-16 07:12:38 -08:00
2022-02-16 07:12:38 -08:00
2022-02-04 11:28:58 -08:00
2022-02-16 07:12:38 -08:00
2021-07-17 14:03:11 -05:00
2021-07-22 21:13:24 -05:00
2021-06-06 15:25:50 -05:00
2022-02-16 07:12:38 -08:00
2021-07-17 14:03:11 -05:00
2021-06-06 15:25:50 -05:00
2021-11-18 06:55:52 -08:00
2022-01-26 10:51:03 -08:00
2021-06-06 15:25:50 -05:00
2021-06-17 18:07:51 -05:00
2021-12-08 11:27:54 -08:00
2022-02-16 07:12:38 -08:00
2021-08-28 15:32:24 -07:00
2020-12-12 17:03:06 -06:00
2021-12-02 11:38:19 -06:00
2022-02-12 06:49:22 -08:00

Kavita

!high level view

Kavita is a fast, feature rich, cross platform reading server. Built with a focus for manga, and the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family!

Release License Downloads Docker Pulls Maintainability Rating Security Rating Backers on Open Collective Sponsors on Open Collective

Goals

  • Serve up Manga/Webtoons/Comics (cbr, cbz, zip/rar, 7zip, raw images) and Books (epub, pdf)
  • First class responsive readers that work great on any device (phone, tablet, desktop)
  • Dark and Light themes
  • Provide hooks into metadata providers to fetch metadata for Comics, Manga, and Books
  • Metadata should allow for collections, want to read integration from 3rd party services, genres.
  • Ability to manage users, access, and ratings
  • Ability to sync ratings and reviews to external services
  • Fully Accessible with active accessibility audits
  • Dedicated webtoon reading mode
  • And so much more...

Support

Reddit Discord GitHub - Bugs and Feature Requests Only

Demo

If you want to try out Kavita, we have a demo up: https://demo.kavitareader.com/

Username: demouser
Password: Demouser64

Setup

Non-Docker

  • Unzip the archive for your target OS
  • Place in a directory that is writable. If on windows, do not place in Program Files
  • Linux users must ensure the directory & kavita.db is writable by Kavita (might require starting server once)
  • Run Kavita
  • If you are updating, copy everything over into install location. All Kavita data is stored in config/, so nothing will be overwritten.
  • Open localhost:5000 and setup your account and libraries in the UI.

Docker

Running your Kavita server in docker is super easy! Barely an inconvenience. You can run it with this command:

docker run --name kavita -p 5000:5000 \
-v /your/manga/directory:/manga \
-v /kavita/data/directory:/kavita/config \
--restart unless-stopped \
-d kizaing/kavita:latest

You can also run it via the docker-compose file:

version: '3'
services:
    kavita:
        image: kizaing/kavita:latest
        container_name: kavita
        volumes:
            - ./manga:/manga
            - ./config:/kavita/config
        ports:
            - "5000:5000"
        restart: unless-stopped

Note: Kavita is under heavy development and is being updated all the time, so the tag for current builds is :nightly. The :latest tag will be the latest stable release.

Feature Requests

Got a great idea? Throw it up on our Feature Request site or vote on another idea. Please check the Project Board first for a list of planned features.

Notice

Kavita is being actively developed and should be considered beta software until the 1.0 release. Kavita may be subject to changes in how the platform functions as it is being built out toward the vision. You may lose data and have to restart. The Kavita team strives to avoid any data loss.

Contributors

This project exists thanks to all the people who contribute. Contribute.

Donate

If you like Kavita, have gotten good use out of it or feel like you want to say thanks with a few bucks, feel free to donate. Money will go towards expenses related to Kavita. Back us through OpenCollective. You can also use Paypal, however your name will not show below.

Backers

Thank you to all our backers! 🙏 Become a backer

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor

Mega Sponsors

JetBrains

Thank you to JetBrains for providing us with free licenses to their great tools.

Palace-Designs

We would like to extend a big thank you to who hosts our infrastructure pro-bono.

License

Description
Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family.
Readme GPL-3.0 226 MiB
Languages
C# 61.1%
TypeScript 24.2%
HTML 12%
SCSS 2.4%
Shell 0.1%