feat(page-element): option to keep the portal text size in boxes, tabs and accordions - #116
Merged
Conversation
…s and accordions Vuetify's v-card-text renders its content in body-medium (14px), the Material Design size for the supporting text of a card. Boxes and tabs use it as their content container, so a text block placed inside them comes out smaller than the same block on the page (16px): visible on the applications page of the docs portal, where every paragraph lives in a box. Each of the three containers gets a "Conserver la taille de texte du portail" checkbox that switches its content to body-large, the portal body size. It is off by default, so existing portals keep their rendering. Accordions had no rule of their own: Vuetify leaves their text at the page size, Material Design having no such component. Their content is now reduced to body-medium by default too, so the three containers behave alike and the option means the same thing everywhere. The border option of boxes and tabs is relabelled "Afficher une bordure". The test renders each container with and without the option and checks the computed size of the text inside, 14px then 16px.
- rules moved from labs to the vuetify core entry, adapt the imports and the module options (fromLabs + alias, cf vuetifyjs/nuxt-module#390) - prefix vuetify useLayout, nuxt 4.5 ships its own (vuetifyjs/nuxt-module#384) - drop console/debugger through rolldown, nuxt-security still uses the esbuild option that vite 8 ignores (Baroshem/nuxt-security#737) - regenerate the vuetify patch, 4.2 fixes the native select option labels
__dirname is unsupported by the native config loader that vite plans to make the default.
BatLeDev
force-pushed
the
feat-box-text-size
branch
from
September 3, 2026 14:36
fdf3937 to
c8501e7
Compare
The 21.2.2 upgrade added @commitlint/cli as a direct dependency, next to commitlint which is only an alias package depending on it and re-exporting its bin. Both provide a commitlint bin, and npm links the one from @commitlint/cli, so the alias earned nothing. The commit-msg hook runs "npx --no-install commitlint": it still resolves after the removal, checked on a valid scope and on one outside scope-enum.
…ecurity nuxt-security's removeLoggers goes through vite.esbuild.drop, which Vite 8 ignores in favour of oxc: it warned at every build and left the console calls in the client bundle. The nuxt 4.5 upgrade moved the job to the rolldown minify options of the client build, so the module option is now off and nothing injects the ignored esbuild.drop any more. cf Baroshem/nuxt-security#737
The note on the un-patched role="combobox" points at the two lines where VTextField applies its role prop; they moved with the vuetify 4.2.0 bump.
…e styles portal/package.json asked for ^1.0.0-beta.2, so regenerating the lockfile for the nuxt 4.5 upgrade silently moved the module from 1.0.0-beta.4 to 1.0.0-rc.5. The portal build went from 79 seconds to over 74 minutes and the docker image job had to be cancelled, twice, which is what keeps the branch from being merged. beta.4 compiles every Vuetify stylesheet against styles.configFile once, into a disk cache keyed on the vuetify and vite versions plus the contents of the settings file, and logs "Compiling Vuetify styles..." while it does it: 19s of module setup on master, after which vuetify:styles resolveId averages 5ms over its 10277 calls. beta.5 dropped that in favour of @vuetify/unplugin-styles, and on this toolchain the styles end up recompiled instead of cached. Pinning exactly, without a range, is what vuetify itself already does here: a caret on a prerelease is free to cross a rewrite like this one again.
…aches the styles" This reverts commit cfe2b03.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an option on box (card), tabs and expansion panel containers to keep the portal body text size (
body-large/ 16px) instead of reducing it tobody-medium(14px). Also bundles dependency upgrades (Nuxt 4.5, Vuetify 4.2, Sharp 0.35, commitlint, docker actions).What changed:
api/types/page-element-layout/schema.js:keepTextSizeboolean option to card, tabs, and expansion panels.borderoption from "Bordure" to "Afficher une bordure" on card and tabs.portal/app/components/page-element/layout/:page-element-card.vue&page-element-tabs.vue: applytext-body-largewhenelement.keepTextSizeis enabled.page-element-expansion-panels.vue: wrap panel content intext-body-largeifkeepTextSize, falling back totext-body-mediumby default to align with cards and tabs.tests/features/portal-rendering/box-text-size.e2e.spec.ts:keepTextSize(14px vs 16px).fromLabs: false, aliasvuetify/rules->vuetify) and prefixuseLayoutto prevent conflict with Nuxt 4.5's built-inuseLayout.import.meta.dirnamein UIvite.config.ts.Why:
Vuetify's
v-card-textsets its content tobody-medium(14px), Material Design's size for supporting text in cards. Boxes and tabs use it as their container, making text blocks inside them noticeably smaller than regular page text (16px). Accordions did not have this reduction, creating inconsistent text sizes between different layout containers.Regression risks:
text-body-medium(14px) whenkeepTextSizeis false, matching cards and tabs. Existing portals using accordions will see their accordion body text reduced unlesskeepTextSizeis toggled on.useLayoutauto-import from Vuetify is now prefixed to avoid colliding with Nuxt 4.5's nativeuseLayout.