Skip to content

Conversation

GT-610
Copy link

@GT-610 GT-610 commented Jul 15, 2025

Semantic UI has not seen any updates in the past three years, and the project appears to be effectively abandoned. This is further confirmed by community discussions and the lack of responses on open issues such as Semantic UI Issue #6109.

This PR proposes migrating from Semantic UI to Fomantic UI, a well-maintained fork that aims to provide 100% compatibility with Semantic UI while continuing active development. Fomantic UI brings improved security, enhanced stability, and additional features—all without breaking existing implementations.

I have personally migrated and tested this change in a production environment over the past three months, and no issues related to the UI library have been observed during that time. The migration was seamless, and all components behaved as expected.

Switching to Fomantic UI ensures long-term maintainability and access to bug fixes and improvements that the original Semantic UI no longer receives. I believe this change will benefit the project's future development and maintenance.

@tobychui tobychui requested a review from Copilot July 15, 2025 04:32
Copy link

@Copilot Copilot AI left a 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 project’s UI framework from Semantic UI to Fomantic UI to ensure ongoing maintenance and feature improvements.

  • Introduces Fomantic UI CSS and JavaScript for components: Flyout, Flag, Feed, and Embed.
  • Updates the Embed component’s CSS to replace Semantic UI Video styles with Fomantic UI Embed styles.
  • Harmonizes style syntax (removes px suffixes, normalizes color properties, updates header comments).

Reviewed Changes

Copilot reviewed 178 out of 525 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/web/script/fomantic/components/flyout.css Added new Flyout component styles
src/web/script/fomantic/components/flag.min.css Added minified Flag component CSS
src/web/script/fomantic/components/flag.css Added full Flag component CSS
src/web/script/fomantic/components/feed.min.css Added minified Feed component CSS
src/web/script/fomantic/components/feed.css Added full Feed component CSS
src/web/script/fomantic/components/embed.min.css Added minified Embed component CSS
src/web/script/fomantic/components/embed.js Added Embed component JavaScript
src/web/script/fomantic/components/embed.css Updated Embed component CSS, replaced Video overrides
Comments suppressed due to low confidence (2)

src/web/script/fomantic/components/embed.css:66

  • [nitpick] Changed selector from .ui.embed > .icon to .ui.embed > i.icon, restricting icons to <i> elements. Ensure any existing usage of .icon on other element types is updated or this may break.
.ui.embed > i.icon {

src/web/script/fomantic/components/embed.css:146

  • [nitpick] The “Video Overrides” and “Site Overrides” sections have been moved to the end of the file, which may reduce readability. Consider grouping override sections closer to related core definitions for easier maintenance.
/*******************************

url = url || module.get.url();
if (url) {
$.each(sources, function (name, source) {
if (url.search(source.domain) !== -1) {
Copy link
Preview

Copilot AI Jul 15, 2025

Choose a reason for hiding this comment

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

Using String.search with an unescaped string compiles a regular expression and may cause unintended matches. Consider using String.includes(source.domain) or explicitly escaping special characters for reliable domain checks.

Suggested change
if (url.search(source.domain) !== -1) {
if (url.includes(source.domain)) {

Copilot uses AI. Check for mistakes.

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.

2 participants