diff --git a/.github/workflows/develop-workflow.yml b/.github/workflows/develop-workflow.yml index b7f229b14..939cda4e5 100644 --- a/.github/workflows/develop-workflow.yml +++ b/.github/workflows/develop-workflow.yml @@ -128,7 +128,7 @@ jobs: - name: Compile dotnet app uses: actions/setup-dotnet@v4 with: - dotnet-version: 8.0.x + dotnet-version: 8.0.x - name: Install Swashbuckle CLI run: dotnet tool install -g Swashbuckle.AspNetCore.Cli @@ -137,6 +137,7 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v3 + if: ${{ github.repository_owner == 'Kareadita' }} with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} @@ -155,20 +156,33 @@ jobs: id: buildx uses: docker/setup-buildx-action@v3 + - name: Extract metadata (tags, labels) for Docker + id: docker_meta_nightly + uses: docker/metadata-action@v5 + with: + tags: | + type=raw,value=nightly + type=raw,value=nightly-${{ steps.parse-version.outputs.VERSION }} + images: | + name=jvmilazz0/kavita,enable=${{ github.repository_owner == 'Kareadita' }} + name=ghcr.io/${{ github.repository }} + - name: Build and push id: docker_build - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm/v7,linux/arm64 push: true - tags: jvmilazz0/kavita:nightly, jvmilazz0/kavita:nightly-${{ steps.parse-version.outputs.VERSION }}, ghcr.io/kareadita/kavita:nightly, ghcr.io/kareadita/kavita:nightly-${{ steps.parse-version.outputs.VERSION }} + tags: ${{ steps.docker_meta_nightly.outputs.tags }} + labels: ${{ steps.docker_meta_nightly.outputs.labels }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} - name: Notify Discord uses: rjstone/discord-webhook-notify@v1 + if: ${{ github.repository_owner == 'Kareadita' }} with: severity: info description: v${{steps.get-version.outputs.assembly-version}} - ${{ steps.findPr.outputs.title }} diff --git a/.github/workflows/release-workflow.yml b/.github/workflows/release-workflow.yml index 251683b6c..95e4dc7e3 100644 --- a/.github/workflows/release-workflow.yml +++ b/.github/workflows/release-workflow.yml @@ -114,6 +114,7 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v3 + if: ${{ github.repository_owner == 'Kareadita' }} with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} @@ -132,23 +133,47 @@ jobs: id: buildx uses: docker/setup-buildx-action@v3 + - name: Extract metadata (tags, labels) for Docker + id: docker_meta_stable + uses: docker/metadata-action@v5 + with: + tags: | + type=raw,value=latest + type=raw,value=${{ steps.parse-version.outputs.VERSION }} + images: | + name=jvmilazz0/kavita,enable=${{ github.repository_owner == 'Kareadita' }} + name=ghcr.io/${{ github.repository }} + - name: Build and push stable id: docker_build_stable - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm/v7,linux/arm64 push: true - tags: jvmilazz0/kavita:latest, jvmilazz0/kavita:${{ steps.parse-version.outputs.VERSION }}, ghcr.io/kareadita/kavita:latest, ghcr.io/kareadita/kavita:${{ steps.parse-version.outputs.VERSION }} + tags: ${{ steps.docker_meta_stable.outputs.tags }} + labels: ${{ steps.docker_meta_stable.outputs.labels }} + + - name: Extract metadata (tags, labels) for Docker + id: docker_meta_nightly + uses: docker/metadata-action@v5 + with: + tags: | + type=raw,value=nightly + type=raw,value=nightly-${{ steps.parse-version.outputs.VERSION }} + images: | + name=jvmilazz0/kavita,enable=${{ github.repository_owner == 'Kareadita' }} + name=ghcr.io/${{ github.repository }} - name: Build and push nightly id: docker_build_nightly - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm/v7,linux/arm64 push: true - tags: jvmilazz0/kavita:nightly, jvmilazz0/kavita:nightly-${{ steps.parse-version.outputs.VERSION }}, ghcr.io/kareadita/kavita:nightly, ghcr.io/kareadita/kavita:nightly-${{ steps.parse-version.outputs.VERSION }} + tags: ${{ steps.docker_meta_nightly.outputs.tags }} + labels: ${{ steps.docker_meta_nightly.outputs.labels }} - name: Image digest run: echo ${{ steps.docker_build_stable.outputs.digest }} diff --git a/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.html b/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.html index 9e1b96ac9..2543a7106 100644 --- a/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.html +++ b/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.html @@ -1,14 +1,14 @@ @if (actions.length > 0) { @if ((utilityService.activeBreakpoint$ | async)! <= Breakpoint.Tablet) { - } @else {
-
diff --git a/UI/Web/src/app/app.component.scss b/UI/Web/src/app/app.component.scss index bc68e8372..e5061412b 100644 --- a/UI/Web/src/app/app.component.scss +++ b/UI/Web/src/app/app.component.scss @@ -7,7 +7,7 @@ .companion-bar { transition: all var(--side-nav-companion-bar-transistion); - margin-left: 60px; + margin-left: 45px; overflow-y: hidden; overflow-x: hidden; height: calc(var(--vh)* 100 - var(--nav-mobile-offset)); diff --git a/UI/Web/src/app/chapter-detail/chapter-detail.component.html b/UI/Web/src/app/chapter-detail/chapter-detail.component.html index 38baf9a61..b342849aa 100644 --- a/UI/Web/src/app/chapter-detail/chapter-detail.component.html +++ b/UI/Web/src/app/chapter-detail/chapter-detail.component.html @@ -85,7 +85,7 @@
- +
diff --git a/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.html b/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.html index bfe7aaba7..4fc6fdbad 100644 --- a/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.html +++ b/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.html @@ -41,7 +41,7 @@
@if (summary.length > 0) {
- +
@if (collectionTag.source !== ScrobbleProvider.Kavita) { diff --git a/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.html b/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.html index 90f8f1de8..55ffee870 100644 --- a/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.html +++ b/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.html @@ -124,8 +124,8 @@ -
- +
+
@if (characters$ | async; as characters) { diff --git a/UI/Web/src/app/series-detail/_components/series-detail/series-detail.component.html b/UI/Web/src/app/series-detail/_components/series-detail/series-detail.component.html index 950b5a8eb..3895f84f3 100644 --- a/UI/Web/src/app/series-detail/_components/series-detail/series-detail.component.html +++ b/UI/Web/src/app/series-detail/_components/series-detail/series-detail.component.html @@ -109,7 +109,7 @@
- +
diff --git a/UI/Web/src/app/shared/read-more/read-more.component.scss b/UI/Web/src/app/shared/read-more/read-more.component.scss index fe87f8f84..1680ce481 100644 --- a/UI/Web/src/app/shared/read-more/read-more.component.scss +++ b/UI/Web/src/app/shared/read-more/read-more.component.scss @@ -1,3 +1,5 @@ +@import "../../../theme/variables"; + .blur-text { color: transparent; text-shadow: 0 0 5px var(--body-text-color); @@ -8,5 +10,10 @@ div { word-break: break-word; + max-width: 75ch; + + @media (max-width: $grid-breakpoints-sm) { + max-width: 50ch; + } } } diff --git a/UI/Web/src/app/volume-detail/volume-detail.component.html b/UI/Web/src/app/volume-detail/volume-detail.component.html index d1f64e20f..75f196e1e 100644 --- a/UI/Web/src/app/volume-detail/volume-detail.component.html +++ b/UI/Web/src/app/volume-detail/volume-detail.component.html @@ -89,7 +89,7 @@
- +
diff --git a/UI/Web/src/theme/components/_sidenav.scss b/UI/Web/src/theme/components/_sidenav.scss index 5f8f567e9..7d4d7a140 100644 --- a/UI/Web/src/theme/components/_sidenav.scss +++ b/UI/Web/src/theme/components/_sidenav.scss @@ -12,6 +12,7 @@ border-radius: var(--side-nav-border-radius); transition: width var(--side-nav-openclose-transition), background-color var(--side-nav-bg-color-transition), border-color var(--side-nav-border-transition); border: var(--side-nav-border); + overflow: hidden; &::-webkit-scrollbar { visibility: hidden; @@ -27,7 +28,7 @@ } //START closed state of the sidebar &.closed { - width: 4.0625rem; + width: 2.825rem; overflow-x: hidden; overflow-y: hidden; background-color: var(--side-nav-closed-bg-color); @@ -49,11 +50,6 @@ opacity: 0; } - .side-nav-text { - opacity: 0; - display: none; - } - .card-actions { opacity: 0; display: none; @@ -64,7 +60,7 @@ //END closed state of the sidebar //START sidebar .side-nav { - overflow-y: hidden; + overflow: hidden; height: 100%; scrollbar-gutter: stable; scrollbar-width: thin; @@ -73,7 +69,7 @@ position: relative; align-items: center; display: flex; - justify-content: space-between; + justify-content: start; width: 100%; height: auto; min-height: 2.6rem; @@ -89,6 +85,7 @@ &:first-of-type { text-align: center; width: 2.5rem; + min-width: 2.5rem; margin-left: 0.3rem; } @@ -101,7 +98,7 @@ align-items: center; height: 100%; justify-content: inherit; - width: 100%; + padding: 0 0.625rem; i { font-size: var(--side-nav-icon-size); @@ -291,10 +288,6 @@ .side-nav-item { width: 100%; padding: 0; - display: block; - line-height: 2.5rem; - text-align: center; - min-height: unset; color: var(--side-nav-item-closed-color); &:hover { @@ -317,11 +310,13 @@ margin: 0; left: 0; top: 0; - transition: width var(--side-nav-openclose-transition); + transition: width var(--side-nav-openclose-transition), visibility var(--side-nav-openclose-transition); z-index: 1050; + overflow-x: hidden; overflow-y: auto; border: var(--side-nav-mobile-border); border-radius: 0rem; + visibility: visible; &.preference { background-color: unset; @@ -349,8 +344,10 @@ &.closed { width: 0; + background-color: var(--side-nav-mobile-bg-color); overflow: hidden; box-shadow: none; + visibility: hidden; } .side-nav { @@ -383,9 +380,13 @@ left: 0; top: 0; z-index: 1041; + visibility: visible; + opacity: 1; + transition: visibility var(--side-nav-openclose-transition), opacity var(--side-nav-openclose-transition); &.closed { - display: none; + visibility: hidden; + opacity: 0; } } }