Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Style cleanup on tables and <ActionsDropdown /> #63

Merged
merged 5 commits into from
Apr 24, 2024

Conversation

DavidLarsKetch
Copy link
Collaborator

@DavidLarsKetch DavidLarsKetch commented Apr 22, 2024

On <DynamicTable />...

  • A column header title & sort button may not flow nicely when the title is longer. So, wrap it in a flex container
  • Adds bg-gray-50 on even rows to help visually differentiate
    • Also removes bg-white from the <ActionsDropdown /> menu icon since that may or may not mesh with the row's background color
  • Fixes the default "No items found..." row length to fill in when overflowing

Before
Screenshot 2024-04-22 at 12 20 41 PM
Screenshot 2024-04-22 at 12 20 47 PM

After

Screen.Recording.2024-04-22.at.12.00.10.PM.mov
Screenshot 2024-04-23 at 11 02 49 AM

src/lib-components/lists/DynamicTable.vue Outdated Show resolved Hide resolved
<span
v-if="col.sort"
class="cursor-pointer"
@click.prevent="handleSort(col.sort as string)"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Moving the click event and cursor-pointer up to the wrapping div will give users a larger clickable target that includes the text and icon. A bit out of scope since we haven't had that up to this point, so I'll leave that to you to decide. @click.prevent="col.sort ? handleSort(col.sort as string) : undefined" should conditionally apply click handling.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I did find the target a bit small, personally, so I'll take a look.

@@ -29,7 +29,7 @@ const { floatingStyles } = useFloating(trigger, wrapper, {
<Menu as="div" class="relative flex justify-end items-center">
<MenuButton
ref="trigger"
class="w-8 h-8 bg-white inline-flex items-center justify-center text-gray-700 rounded-full hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed"
class="w-8 h-8 inline-flex items-center justify-center text-gray-700 rounded-full hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Just a note: this should be OK. The only other places I recall using ActionsDropdown is in DescriptionLists and on the mastermind group show page. Letting the parent background through, is probably the most desirable style in most use cases.

@@ -306,6 +308,7 @@ loadAndRender()
<tr
v-for="(row, rowIdx) in rows"
:key="rowIdx"
class="even:bg-gray-50"
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm good with making this our default, though I subjectively think we could drop the border between rows when they are striped. The extra border adds to the visual competition. Archive uses tables quite a bit more than Portal, so @profsmallpine should probably weight in on moving all in on striped tables.

I'd expect we'd move the DataTable to the same style as well for consistency.

Copy link
Contributor

@profsmallpine profsmallpine Apr 23, 2024

Choose a reason for hiding this comment

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

I don't find one as more compelling than the other, but I think it is best to pick one, either using border or stripes. The downside of stripes for me is that it makes even rows the same background color as the header which I find visually distracting to have the same emphasis for different things. Typically, the headers will loose their background shading so that you put the visual emphasis on the differentiation of rows.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

How do we feel about this option?

Striped, no border between rows, header to bg-gray-100 from bg-gray-50.
Screenshot 2024-04-23 at 11 02 49 AM

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yep, should be OK. We use bg-gray-100 as the app shell background color, so outside a card wrapper it might be a touch off, but not to a degree I think we need to sweat right now. I think Portal currently wraps all tables in some kind of card like wrapper.

@DavidLarsKetch DavidLarsKetch changed the title src/lib-components: styling cleanup on <DynamicTable /> and <ActionsDropdown /> Style cleanup on tables and <ActionsDropdown /> Apr 24, 2024
@DavidLarsKetch DavidLarsKetch merged commit cea3b1e into main Apr 24, 2024
1 check passed
@DavidLarsKetch DavidLarsKetch deleted the davidlarsketch/dynamic-table-cleanup branch April 24, 2024 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants