-
Notifications
You must be signed in to change notification settings - Fork 6
UI-1017 feat: adjust styles #181
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
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR migrates the UI from PatternFly React Icons to Lucide Icons through the @ctrliq/quantic-react library, implements a new design system with Quantic tokens, and updates styling throughout the application. The changes include icon replacements, CSS variable overrides, and font integration.
Key Changes
- Replaced all PatternFly icon imports with Lucide icon equivalents from @ctrliq/quantic-react
- Added comprehensive PatternFly CSS overrides using Quantic design tokens
- Integrated Satoshi and Inter fonts and removed Background component
Reviewed Changes
Copilot reviewed 167 out of 178 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| awx/ui/src/patternfly-overrides.css | New 619-line CSS file defining Quantic design system overrides for PatternFly components |
| awx/ui/src/index.js | Added Quantic tokens/fonts imports and font injection logic |
| awx/ui/src/components/StatusIcon/icons.js | Migrated icon definitions from PatternFly to Lucide icons |
| awx/ui/src/screens/Login/Login.js | Updated login page styling and icon imports |
| Multiple component files | Replaced PatternFly icon imports with Lucide equivalents throughout |
Files not reviewed (1)
- awx/ui/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (linkTo) { | ||
| return ( | ||
| <Tooltip content={defaultLabel || t`Add`} position="top"> | ||
| <Tooltip content={defaultLabel || t`Add`} position="top" open> |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The open prop on Tooltip will cause the tooltip to always be visible. This appears to be unintentional and should be removed unless permanent visibility is required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree
| onClick={() => onRefreshRow(project.id)} | ||
| > | ||
| <UndoIcon /> | ||
| <LucideIconUndo_2 data-original-icon="UndoIcon" /> |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The icon LucideIconUndo_2 is missing the size prop that is consistently applied to other icons throughout this PR. For consistency, add size={16} or an appropriate size value.
| return ( | ||
| <EmptyState variant="full" className={className}> | ||
| <EmptyStateIcon icon={icon} /> | ||
| <EmptyStateIcon size={64} icon={icon} /> |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The size prop is applied to EmptyStateIcon component but icons passed to it may also need sizing. Ensure that icons passed via the icon prop properly handle the size, as earlier in the file the default icon is LucideIconBox which may need explicit sizing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, the size is a hardcoded number. Should this be a token/css var?
| import styled from 'styled-components'; | ||
| import { parseQueryString } from 'util/qs'; | ||
| import { SortColumns, QSConfig } from 'types'; | ||
| import { LucideIconArrowDown10, LucideIconArrowDownAZ } from '@ctrliq/quantic-react'; |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused imports LucideIconArrowDown10, LucideIconArrowDownAZ.
| useParams, | ||
| } from 'react-router-dom'; | ||
| import { CaretLeftIcon } from '@patternfly/react-icons'; | ||
| import { LucideIconChevronLeft } from '@ctrliq/quantic-react'; |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused import LucideIconChevronLeft.
adewergifosse-ciq
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this a draft PR, I will not approve/reject.
This is all looking great! Thank you for doing this work.
I left a few comments around consistency mostly.
| { | ||
| // Serve quantic-fonts assets at /assets path | ||
| directory: path.resolve(__dirname, '../node_modules/@ctrliq/quantic-fonts/dist/assets'), | ||
| publicPath: '/assets', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question: Could this conflict with an actual public assets folder?
Should we/Could we make it a more specific path like quantic-assets?
| // Paths with dots should still use the history fallback. | ||
| // See https://github.com/facebook/create-react-app/issues/387. | ||
| disableDotRule: true, | ||
| disableDotRule: false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question: What does this do?
the comment was not changed but the value was
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shame we're losing this magnificent favicon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lol...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ya, we used to call him Rage taHdeR.
| margin: 0px 0px 0px 0px; | ||
| max-width: initial; | ||
| max-height: 60px; | ||
| max-height: 36px; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: Should this value come from a token/css var?
| return ( | ||
| <EmptyState variant="full" className={className}> | ||
| <EmptyStateIcon icon={icon} /> | ||
| <EmptyStateIcon size={64} icon={icon} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, the size is a hardcoded number. Should this be a token/css var?
| name: ( | ||
| <> | ||
| <CaretLeftIcon aria-label={t`Back to Groups`} /> | ||
| <ChevronLeft aria-label={t`Back to Groups`} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsisency between LucideIconChevronLeft in the import and ChevronLeft in the usage
| data-cy="login-form" | ||
| className={authError ? 'pf-m-error' : ''} | ||
| helperText={helperText} | ||
| helperText={authError ? helperText : null} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question: This changes the behaviour. Is there no case wehre we need to display a helperText that is not an error?
| > | ||
| <Tooltip content={t`Sign in with Azure AD`}> | ||
| <AzureIcon size="lg" /> | ||
| <AzureIcon size={24} data-original-icon="AzureIcon" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
new size: 24?
| color: black; | ||
| font-size: 10px; | ||
| background-color: var(--quantic-bg-tertiary); | ||
| line-height: 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: Should this be a token/css var?
| background-color: white; | ||
| border: 1px solid #ccc; | ||
| color: black; | ||
| font-size: 10px; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: Should this be a token/css var?
SUMMARY
UI updates to match Quantic DS styles.
This pull request introduces the integration of the Quantic design system into the AWX UI. The main changes include adding Quantic packages as dependencies, updating Webpack and dev server config to support custom font assets, and cleaning up legacy styles and assets. These updates lay the groundwork for using Quantic components and styles throughout the application.
ISSUE TYPE
COMPONENT NAME
ASCENDER VERSION