Skip to content

feat(settings): Rework personal info into a sectioned single-column layout - #61358

Open
nfebe wants to merge 9 commits into
masterfrom
enh/57008-personal-info-reorg
Open

feat(settings): Rework personal info into a sectioned single-column layout#61358
nfebe wants to merge 9 commits into
masterfrom
enh/57008-personal-info-reorg

Conversation

@nfebe

@nfebe nfebe commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Personal info is reorganized into clear sections in a single column instead of a multi-column grid of separately mounted widgets, with fields adopting a consistent modern look in line with the settings redesign.

Resolves: #57008

Before

a4-personal-settings

After

Screencast.From.2026-06-16.22-51-29.webm

@nfebe nfebe added this to the Nextcloud 35 milestone Jun 16, 2026
@nfebe
nfebe requested review from kra-mo, skjnldsv and susnux June 16, 2026 21:54
@nfebe
nfebe requested review from a team as code owners June 16, 2026 21:54
@nfebe
nfebe requested review from sorbaugh and removed request for a team June 16, 2026 21:54
@nfebe nfebe added the design Design, UI, UX, etc. label Jun 16, 2026
@nfebe nfebe added 3. to review Waiting for reviews feature: settings labels Jun 16, 2026
@nfebe
nfebe requested review from CarlSchwan, artonge and leftybournes and removed request for a team June 16, 2026 21:54
@github-project-automation github-project-automation Bot moved this to 🏗️ In progress in 📁 Files team Jun 16, 2026
@artonge
artonge requested a review from pringelmann June 17, 2026 11:33

@pringelmann pringelmann left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good overall! Left some comments, and two general points:

  • Would be nice to get these changes covered by tests. I know we didn't have any to begin with, but this might be a good opportunity to add some. Even just getting an LLM to write tests that cover the critical happy paths.
  • The max width of the form inputs feels a bit too wide. Maybe set the cap a bit lower? Just my opinion :) cc @kra-mo

Comment thread apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue Outdated

@kra-mo kra-mo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+963
-1,311

Neat :D

As @pringelmann said, it is a bit too wide, but also, it should be center-aligned instead of left-aligned.

Otherwise, looks good from the design side!

@kra-mo

kra-mo commented Jun 18, 2026

Copy link
Copy Markdown
Member

Although, are the vertical lines everywhere a video compression glitch or are there just separator lines in a bunch of places? If there are, they are not needed. The layout is quite clear without them already.

@kra-mo

kra-mo commented Jun 18, 2026

Copy link
Copy Markdown
Member

Oh but actually, I forgot that according the original mockup, "Language & locale" and "Profile & contact" should be two separate pages, replacing "Personal info".

Comment thread apps/settings/src/components/PersonalInfo/shared/VisibilityScopeControl.vue Outdated

@jancborchardt jancborchardt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with Laura’s and Peter’s review on the width, and also on the center-alignment.

Important to note about the center alignment is that it shouldn’t center in the app-content on the right, but generally based on the viewport. So it should be nicely centered below the search bar in the header.

And as per discussion with @kra-mo, it would be best to put layouting logic like that in the components, because this will be the case for most or all settings sections.

@nfebe
nfebe force-pushed the enh/57008-personal-info-reorg branch 2 times, most recently from d437fae to fbd576f Compare June 29, 2026 18:04
@nfebe
nfebe requested a review from hweihwang as a code owner June 29, 2026 18:04
@nfebe
nfebe force-pushed the enh/57008-personal-info-reorg branch from fbd576f to 66e8907 Compare June 30, 2026 12:21
@nfebe

nfebe commented Jun 30, 2026

Copy link
Copy Markdown
Contributor Author
Screencast.From.2026-06-30.13-19-47.webm

@jancborchardt @kra-mo

@nfebe
nfebe requested a review from pringelmann June 30, 2026 12:40
@nfebe
nfebe requested a review from kra-mo June 30, 2026 12:40
@nfebe
nfebe force-pushed the enh/57008-personal-info-reorg branch from 66e8907 to e8b9366 Compare June 30, 2026 13:42
@nfebe
nfebe requested review from jancborchardt and susnux June 30, 2026 13:50

@susnux susnux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good no blockers from my side

Comment thread apps/settings/src/components/SettingsColumn.vue

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a specific reason to make this its own section?

I mean not visually but from the settings API.
Because you can also just put multiple sections, which belong to each other, into one settings entry point.
So you do not need to mount X apps but only one Vue app needs to be mounted.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Laura's specification needs two separate pages, and two pages needs two Sections. There is no way to get two sidebar entries from one Section. They are separate pages, so only one entry point ever loads.

@jancborchardt jancborchardt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nfebe still looks quite wide to me, and the content is not centered when compared to the search box in the header.

@kra-mo your call on how much we want to narrow it (I'd say at least a bit) and if the centering is fine as-is or should fit with the search field.

@kra-mo

kra-mo commented Jul 3, 2026

Copy link
Copy Markdown
Member

your call on how much we want to narrow it

I'd say let's just make it consistent with the in-app search dialog.

@kra-mo

kra-mo commented Jul 3, 2026

Copy link
Copy Markdown
Member

I think the centering is fine, the layouting would be too complex for a one-off otherwise. Let's put it in a component somewhere down the line.

@susnux

susnux commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

I'd say let's just make it consistent with the in-app search dialog.

That would be 700px

@nfebe
nfebe force-pushed the enh/57008-personal-info-reorg branch from e8b9366 to 682c22c Compare August 7, 2026 03:28
nfebe added 9 commits August 7, 2026 04:32
…ayout

Personal info is reorganized into clear sections in a single column instead
of a multi-column grid of separately mounted widgets, with fields adopting a
consistent modern look in line with the settings redesign.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
…over

The per-field privacy control now sets both profile visibility and federation
scope in one popover, replacing the separate visibility section.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
…area token

Two profile components left unused after the redesign are removed, and the per-field privacy controls now derive their width from the shared clickable-area variable instead of a hard-coded size.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
…ipt setup

The combined visibility and scope control is rewritten with the Composition API and typed script setup, matching the rest of the redesigned settings and easing the future runtime migration.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
Adds happy-path coverage for the combined privacy control: rendering the popover, persisting a scope change, and rolling back when saving fails.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
Personal settings render in a width-capped, centered column instead of stretching across the content area. Per-field action controls sit in a side gutter so every field, the profile card, and the language and locale dropdowns share one width, and the community footer is centered to match.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
The single Personal info page is replaced by two separate navigation entries and pages, Profile & contact and Language & locale, so each area is its own settings page. Both pages expose the same account data, so the existing field components keep working unchanged.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
The search field sat slightly left of centre, because the spacing after the
last header entry widened one side of the header against the other. It also
rendered narrower than the width it declares, since a proportional cap
resolved against the field's own width.

Its position is now derivable, so page content can line up with it. The field
is 32px wider on desktop as a result.
The single-column body centred itself inside the app content, which the
navigation pushes off the centre the search sits on, so the two never lined
up. It now starts where the search field starts, and falls back to centring
where the navigation overlays the content instead of sitting beside it.
@nfebe
nfebe force-pushed the enh/57008-personal-info-reorg branch from 682c22c to ad64000 Compare August 7, 2026 03:33
@nfebe

nfebe commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

@kra-mo So it now aligns with the search bar, but but the search-bar is shorter... I was wondering if it will be better to make it same width as the search as its just wide inputs but this looks good already too.

cc: @jancborchardt

Screencast.From.2026-08-07.05-23-11.webm

@nfebe
nfebe requested review from jancborchardt and susnux August 7, 2026 04:32

@kra-mo kra-mo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, looks better :)

And yes, I guess it would probably make sense to match its max-width to that of the search bar. Could maybe even be a variable somewhere.

Three more pieces of feedback:

  1. This should be as wide as all the other inputs
Image
  1. The "Enter your date of birth" label is redundant
Image
  1. Some of the icons are not aligned with the input fields
Image

Otherwise, looks good from what I can see so far.

@kra-mo

kra-mo commented Aug 7, 2026

Copy link
Copy Markdown
Member

Ok, I tested it locally and have some more feedback:

  • The icons should have some padding on the right, otherwise they can overlap with the scroll bar.
image
  • This label should also be removed as it is also redundant.
image
  • We should update this button to use the proper button component.
image
  • When opening these popovers, the first dropdown should not automatically open
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews design Design, UI, UX, etc. feature: settings

Projects

Status: 🏗️ In progress

Development

Successfully merging this pull request may close these issues.

Personal info settings reorganization

5 participants