diff --git a/.woodpecker.yml b/.woodpecker.yml index a8fb90f..61563c0 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,5 +1,5 @@ steps: - check-tag: + "Verify tag and app version": image: alpine commands: - TAG=${CI_COMMIT_TAG/v//} @@ -7,7 +7,7 @@ steps: when: event: [tag] - dependencies: + "Install dependencies": image: node:16 pull: true commands: @@ -16,13 +16,13 @@ steps: event: [tag, push, pull_request, manual] branch: [master, develop, feature/*, fix/*, bugfix/*, translations] - osv-detector: + "Check dependencies": image: gitnet.fr/deblan/osv-detector:v0.10 commands: - osv-detector package-lock.json failure: ignore - build-js: + "Build JS": image: node:16 commands: - npm run build @@ -30,7 +30,7 @@ steps: event: [tag, push, pull_request, manual] branch: [master, develop, feature/*, fix/*, bugfix/*, translations] - build-translations: + "Build translations": image: deblan/php:8.0 commands: - php bin/generate_l10n.php @@ -38,7 +38,7 @@ steps: event: [tag, push, pull_request, manual] branch: [master, develop, feature/*, fix/*, bugfix/*, translations] - create-signature: + "Create signature": image: nextcloud:25 secrets: [app_certificate, app_public_certificate] environment: @@ -73,7 +73,7 @@ steps: # when: # event: [pull_request] - create-package: + "Create package": image: deblan/php:8.0 volumes: - /var/www/html/artifacts:/var/www/html/artifacts @@ -89,7 +89,7 @@ steps: when: event: [tag] - push-release: + "Push release": image: plugins/gitea-release volumes: - /var/www/html/artifacts:/var/www/html/artifacts diff --git a/CHANGELOG.md b/CHANGELOG.md index be801f6..3533d10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ ## [Unreleased] +## 3.11.7 +### Added +* update translations +* update ci steps names +### Fixed +* add accessibility to open and close buttons (#311) +* fully apply Nextcloud AppMenu.vue updated (#326) +* add missing label on the 'save' button in personal settings (fix #318) +### Changed +* upgrade axios +* upgrade css-loader + ## 3.11.6 ### Fixed * add --background-invert-if-bright in top menu (fix #326) diff --git a/appinfo/info.xml b/appinfo/info.xml index 6d049ae..c293e56 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -32,7 +32,7 @@ Notice Because I believe in a free and decentralized Internet, [Gitnet](https://gitnet.fr) is **self-hosted at home**. In case of downtime, you can download **Custom Menu** from [here](https://kim.deblan.fr/~side_menu/). ]]> - 3.11.6 + 3.11.7 agpl Simon Vieille SideMenu diff --git a/css/sideMenu.css b/css/sideMenu.css index b66e53a..8a63202 100644 --- a/css/sideMenu.css +++ b/css/sideMenu.css @@ -83,6 +83,12 @@ padding-left: 12px !important; margin-left: 5px !important; margin-left: 3px !important; + overflow: hidden; +} + +.side-menu-opener span { + position: relative; + left: 50px; } .side-menu-opener:active, .side-menu-opener:focus { diff --git a/package.json b/package.json index 05e2ef7..9298a83 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "stylelint:fix": "./node_modules/.bin/stylelint src --fix" }, "dependencies": { - "axios": "^0.24.0", + "axios": "^1.6.7", "trim": "^1.0.1", "vue": "^2.6.11" }, @@ -33,7 +33,7 @@ "@nextcloud/vue": "^7.12.1", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", - "css-loader": "^3.4.2", + "css-loader": "^6.10.0", "eslint": "^8.0.0", "eslint-config-standard": "^17.0.0", "eslint-import-resolver-webpack": "^0.12.1", diff --git a/src/AppMenu.vue b/src/AppMenu.vue index f90ebad..4e31f12 100644 --- a/src/AppMenu.vue +++ b/src/AppMenu.vue @@ -168,6 +168,7 @@ $header-icon-size: 20px; flex-shrink: 1; flex-wrap: wrap; } + .app-menu-main { display: flex; flex-wrap: nowrap; @@ -177,7 +178,6 @@ $header-icon-size: 20px; height: 50px; position: relative; display: flex; - opacity: .7; &.app-menu-entry__active { opacity: 1; @@ -217,6 +217,7 @@ $header-icon-size: 20px; width: $header-icon-size; height: $header-icon-size; padding: calc((100% - $header-icon-size) / 2); + box-sizing: content-box; filter: var(--background-image-invert-if-bright, var(--primary-invert-if-bright)); } @@ -226,8 +227,8 @@ $header-icon-size: 20px; font-size: 12px; color: var(--color-primary-text); text-align: center; - bottom: -5px; left: 50%; + top: 45%; display: block; min-width: 100%; transform: translateX(-50%); @@ -235,6 +236,7 @@ $header-icon-size: 20px; width: 100%; text-overflow: ellipsis; overflow: hidden; + letter-spacing: -0.5px; } &:not(.app-menu-entry__hidden-label):not(.app-menu-entry__show-hovered):hover, @@ -242,11 +244,11 @@ $header-icon-size: 20px; opacity: 1; .app-menu-entry--label { opacity: 1; - font-weight: bold; - font-size: 14px; + font-weight: bolder; bottom: 0; - width: auto; - overflow: visible; + width: 100%; + text-overflow: ellipsis; + overflow: hidden; } } } @@ -263,8 +265,10 @@ $header-icon-size: 20px; &:not(.app-menu-main__hidden-label):not(.app-menu-main__show-hovered):focus-within, .app-menu-entry:not(.app-menu-entry__hidden-label):hover, .app-menu-entry:not(.app-menu-entry__hidden-label):focus { + opacity: 1; + img { - margin-top: -6px; + margin-top: -8px; } .app-menu-entry--label { @@ -280,7 +284,7 @@ $header-icon-size: 20px; &.app-menu-main__show-hovered .app-menu-entry:hover, &.app-menu-main__show-hovered .app-menu-entry:focus { img { - margin-top: -6px; + margin-top: -8px; } .app-menu-entry--label { @@ -295,38 +299,42 @@ $header-icon-size: 20px; } ::v-deep .app-menu-more .button-vue--vue-tertiary { - color: var(--color-primary-text); opacity: .7; margin: 3px; + filter: var(--background-image-invert-if-bright, var(--primary-invert-if-bright)); - &:hover { - opacity: 1; - background-color: transparent !important; + &:not([aria-expanded="true"]) { + color: var(--color-primary-element-text); + + &:hover { + opacity: 1; + background-color: transparent !important; + } } - &:focus-visible { - opacity: 1; - background-color: transparent !important; - border-radius: var(--border-radius); - outline: none; - box-shadow: 0 0 0 2px var(--color-primary-text); - } + &:focus-visible { + opacity: 1; + outline: none !important; + } } .app-menu-popover-entry { .app-icon { position: relative; height: 44px; + width: 48px; + display: flex; + align-items: center; + justify-content: center; + filter: var(--background-invert-if-bright, var(--primary-invert-if-bright)); &.has-unread::after { background-color: var(--color-main-text); } img { - filter: var(--background-invert-if-bright, var(--primary-invert-if-bright)); width: $header-icon-size; height: $header-icon-size; - padding: calc((50px - $header-icon-size) / 2); } } } @@ -335,7 +343,7 @@ $header-icon-size: 20px; content: ""; width: 8px; height: 8px; - background-color: var(--color-primary-text); + background-color: var(--color-primary-element-text); border-radius: 50%; position: absolute; display: block; diff --git a/src/CloserButton.vue b/src/CloserButton.vue index 99779f8..80ed747 100644 --- a/src/CloserButton.vue +++ b/src/CloserButton.vue @@ -15,11 +15,18 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . --> diff --git a/src/OpenerButton.vue b/src/OpenerButton.vue index 58298ae..538291c 100644 --- a/src/OpenerButton.vue +++ b/src/OpenerButton.vue @@ -15,7 +15,9 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . -->