Repository files navigation

ForgeTech

The monorepo of all ForgeTech

What's inside?

This repository includes the following packages and apps:

Apps and Packages

  • docs: The Documentation site of ForgeUI https://3squared.github.io/ForgeUI/
  • ui: Forge UI itself
  • playground: Playground as an easy way to display and explore components in a web browser
  • eslint-config-custom: shared eslint configurations

Install

npm install - This will install all the dependencies for all projects in the repository

Dev

npm run dev - This will run the Docs site in dev mode with hot reloading

Build

npm run build - This will build all packages and apps ready for release

Test

npm run test - This will test all packages and apps ready for release

Lint

npm run lint - This will lint all packages and apps

Contributing

Changesets

Changesets are a way of managing changes to your codebase in a structured and organized way. They allow you to group related changes into a single cohesive unit, which can then be reviewed, tested, and deployed as a single entity.

Changesets typically include one or more code changes, along with documentation updates, tests, and any other artifacts necessary to ensure the change is complete and correct. They include a description of the change along with a list of any relevant issues or pull requests that the change addresses.

To use changesets, you typically create a new branch or fork of your codebase, make your changes, and then commit them to the branch or fork. Once you have made all of your changes, you can then create a changeset, which will allow you to group all of the changes into a single cohesive unit.

Linting

In order to fix linting errors you will need to make changes to your code to bring it into compliance with the rules or guidelines being enforced by your linter. This might involve correcting syntax errors, updating variable names, or making other changes to ensure that your code conforms to the expected style and conventions.

Some linting tools also provide automatic fixes for common issues which can be a helpful way to quickly resolve simple errors or violations. In more complex cases you may need to manually review and update your code to ensure that it meets the expected standards.

Versioning

In this repository, we make use of changesets to version and publish the packages in this repository. Please check this if you want to submit a PR and never heard of changesets before.

About

ForgeUI

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ForgeTech

The monorepo of all ForgeTech

What's inside?

This repository includes the following packages and apps:

Apps and Packages

  • docs: The Documentation site of ForgeUI https://3squared.github.io/ForgeUI/
  • ui: Forge UI itself
  • playground: Playground as an easy way to display and explore components in a web browser
  • eslint-config-custom: shared eslint configurations

Install

npm install - This will install all the dependencies for all projects in the repository

Dev

npm run dev - This will run the Docs site in dev mode with hot reloading

Build

npm run build - This will build all packages and apps ready for release

Test

npm run test - This will test all packages and apps ready for release

Lint

npm run lint - This will lint all packages and apps

Contributing

Changesets

Changesets are a way of managing changes to your codebase in a structured and organized way. They allow you to group related changes into a single cohesive unit, which can then be reviewed, tested, and deployed as a single entity.

Changesets typically include one or more code changes, along with documentation updates, tests, and any other artifacts necessary to ensure the change is complete and correct. They include a description of the change along with a list of any relevant issues or pull requests that the change addresses.

To use changesets, you typically create a new branch or fork of your codebase, make your changes, and then commit them to the branch or fork. Once you have made all of your changes, you can then create a changeset, which will allow you to group all of the changes into a single cohesive unit.

Linting

In order to fix linting errors you will need to make changes to your code to bring it into compliance with the rules or guidelines being enforced by your linter. This might involve correcting syntax errors, updating variable names, or making other changes to ensure that your code conforms to the expected style and conventions.

Some linting tools also provide automatic fixes for common issues which can be a helpful way to quickly resolve simple errors or violations. In more complex cases you may need to manually review and update your code to ensure that it meets the expected standards.

Versioning

In this repository, we make use of changesets to version and publish the packages in this repository. Please check this if you want to submit a PR and never heard of changesets before.

About

ForgeUI

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ForgeTech

The monorepo of all ForgeTech

What's inside?

This repository includes the following packages and apps:

Apps and Packages

  • docs: The Documentation site of ForgeUI https://3squared.github.io/ForgeUI/
  • ui: Forge UI itself
  • playground: Playground as an easy way to display and explore components in a web browser
  • eslint-config-custom: shared eslint configurations

Install

npm install - This will install all the dependencies for all projects in the repository

Dev

npm run dev - This will run the Docs site in dev mode with hot reloading

Build

npm run build - This will build all packages and apps ready for release

Test

npm run test - This will test all packages and apps ready for release

Lint

npm run lint - This will lint all packages and apps

Contributing

Changesets

Changesets are a way of managing changes to your codebase in a structured and organized way. They allow you to group related changes into a single cohesive unit, which can then be reviewed, tested, and deployed as a single entity.

Changesets typically include one or more code changes, along with documentation updates, tests, and any other artifacts necessary to ensure the change is complete and correct. They include a description of the change along with a list of any relevant issues or pull requests that the change addresses.

To use changesets, you typically create a new branch or fork of your codebase, make your changes, and then commit them to the branch or fork. Once you have made all of your changes, you can then create a changeset, which will allow you to group all of the changes into a single cohesive unit.

Linting

In order to fix linting errors you will need to make changes to your code to bring it into compliance with the rules or guidelines being enforced by your linter. This might involve correcting syntax errors, updating variable names, or making other changes to ensure that your code conforms to the expected style and conventions.

Some linting tools also provide automatic fixes for common issues which can be a helpful way to quickly resolve simple errors or violations. In more complex cases you may need to manually review and update your code to ensure that it meets the expected standards.

Versioning

In this repository, we make use of changesets to version and publish the packages in this repository. Please check this if you want to submit a PR and never heard of changesets before.

About

ForgeUI

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ForgeTech

The monorepo of all ForgeTech

What's inside?

This repository includes the following packages and apps:

Apps and Packages

  • docs: The Documentation site of ForgeUI https://3squared.github.io/ForgeUI/
  • ui: Forge UI itself
  • playground: Playground as an easy way to display and explore components in a web browser
  • eslint-config-custom: shared eslint configurations

Install

npm install - This will install all the dependencies for all projects in the repository

Dev

npm run dev - This will run the Docs site in dev mode with hot reloading

Build

npm run build - This will build all packages and apps ready for release

Test

npm run test - This will test all packages and apps ready for release

Lint

npm run lint - This will lint all packages and apps

Contributing

Changesets

Changesets are a way of managing changes to your codebase in a structured and organized way. They allow you to group related changes into a single cohesive unit, which can then be reviewed, tested, and deployed as a single entity.

Changesets typically include one or more code changes, along with documentation updates, tests, and any other artifacts necessary to ensure the change is complete and correct. They include a description of the change along with a list of any relevant issues or pull requests that the change addresses.

To use changesets, you typically create a new branch or fork of your codebase, make your changes, and then commit them to the branch or fork. Once you have made all of your changes, you can then create a changeset, which will allow you to group all of the changes into a single cohesive unit.

Linting

In order to fix linting errors you will need to make changes to your code to bring it into compliance with the rules or guidelines being enforced by your linter. This might involve correcting syntax errors, updating variable names, or making other changes to ensure that your code conforms to the expected style and conventions.

Some linting tools also provide automatic fixes for common issues which can be a helpful way to quickly resolve simple errors or violations. In more complex cases you may need to manually review and update your code to ensure that it meets the expected standards.

Versioning

In this repository, we make use of changesets to version and publish the packages in this repository. Please check this if you want to submit a PR and never heard of changesets before.

About

ForgeUI

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ForgeTech

The monorepo of all ForgeTech

What's inside?

This repository includes the following packages and apps:

Apps and Packages

  • docs: The Documentation site of ForgeUI https://3squared.github.io/ForgeUI/
  • ui: Forge UI itself
  • playground: Playground as an easy way to display and explore components in a web browser
  • eslint-config-custom: shared eslint configurations

Install

npm install - This will install all the dependencies for all projects in the repository

Dev

npm run dev - This will run the Docs site in dev mode with hot reloading

Build

npm run build - This will build all packages and apps ready for release

Test

npm run test - This will test all packages and apps ready for release

Lint

npm run lint - This will lint all packages and apps

Contributing

Changesets

Changesets are a way of managing changes to your codebase in a structured and organized way. They allow you to group related changes into a single cohesive unit, which can then be reviewed, tested, and deployed as a single entity.

Changesets typically include one or more code changes, along with documentation updates, tests, and any other artifacts necessary to ensure the change is complete and correct. They include a description of the change along with a list of any relevant issues or pull requests that the change addresses.

To use changesets, you typically create a new branch or fork of your codebase, make your changes, and then commit them to the branch or fork. Once you have made all of your changes, you can then create a changeset, which will allow you to group all of the changes into a single cohesive unit.

Linting

In order to fix linting errors you will need to make changes to your code to bring it into compliance with the rules or guidelines being enforced by your linter. This might involve correcting syntax errors, updating variable names, or making other changes to ensure that your code conforms to the expected style and conventions.

Some linting tools also provide automatic fixes for common issues which can be a helpful way to quickly resolve simple errors or violations. In more complex cases you may need to manually review and update your code to ensure that it meets the expected standards.

Versioning

In this repository, we make use of changesets to version and publish the packages in this repository. Please check this if you want to submit a PR and never heard of changesets before.

About

ForgeUI

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ForgeTech

The monorepo of all ForgeTech

What's inside?

This repository includes the following packages and apps:

Apps and Packages

  • docs: The Documentation site of ForgeUI https://3squared.github.io/ForgeUI/
  • ui: Forge UI itself
  • playground: Playground as an easy way to display and explore components in a web browser
  • eslint-config-custom: shared eslint configurations

Install

npm install - This will install all the dependencies for all projects in the repository

Dev

npm run dev - This will run the Docs site in dev mode with hot reloading

Build

npm run build - This will build all packages and apps ready for release

Test

npm run test - This will test all packages and apps ready for release

Lint

npm run lint - This will lint all packages and apps

Contributing

Changesets

Changesets are a way of managing changes to your codebase in a structured and organized way. They allow you to group related changes into a single cohesive unit, which can then be reviewed, tested, and deployed as a single entity.

Changesets typically include one or more code changes, along with documentation updates, tests, and any other artifacts necessary to ensure the change is complete and correct. They include a description of the change along with a list of any relevant issues or pull requests that the change addresses.

To use changesets, you typically create a new branch or fork of your codebase, make your changes, and then commit them to the branch or fork. Once you have made all of your changes, you can then create a changeset, which will allow you to group all of the changes into a single cohesive unit.

Linting

In order to fix linting errors you will need to make changes to your code to bring it into compliance with the rules or guidelines being enforced by your linter. This might involve correcting syntax errors, updating variable names, or making other changes to ensure that your code conforms to the expected style and conventions.

Some linting tools also provide automatic fixes for common issues which can be a helpful way to quickly resolve simple errors or violations. In more complex cases you may need to manually review and update your code to ensure that it meets the expected standards.

Versioning

In this repository, we make use of changesets to version and publish the packages in this repository. Please check this if you want to submit a PR and never heard of changesets before.

About

ForgeUI

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ForgeTech

The monorepo of all ForgeTech

What's inside?

This repository includes the following packages and apps:

Apps and Packages

  • docs: The Documentation site of ForgeUI https://3squared.github.io/ForgeUI/
  • ui: Forge UI itself
  • playground: Playground as an easy way to display and explore components in a web browser
  • eslint-config-custom: shared eslint configurations

Install

npm install - This will install all the dependencies for all projects in the repository

Dev

npm run dev - This will run the Docs site in dev mode with hot reloading

Build

npm run build - This will build all packages and apps ready for release

Test

npm run test - This will test all packages and apps ready for release

Lint

npm run lint - This will lint all packages and apps

Contributing

Changesets

Changesets are a way of managing changes to your codebase in a structured and organized way. They allow you to group related changes into a single cohesive unit, which can then be reviewed, tested, and deployed as a single entity.

Changesets typically include one or more code changes, along with documentation updates, tests, and any other artifacts necessary to ensure the change is complete and correct. They include a description of the change along with a list of any relevant issues or pull requests that the change addresses.

To use changesets, you typically create a new branch or fork of your codebase, make your changes, and then commit them to the branch or fork. Once you have made all of your changes, you can then create a changeset, which will allow you to group all of the changes into a single cohesive unit.

Linting

In order to fix linting errors you will need to make changes to your code to bring it into compliance with the rules or guidelines being enforced by your linter. This might involve correcting syntax errors, updating variable names, or making other changes to ensure that your code conforms to the expected style and conventions.

Some linting tools also provide automatic fixes for common issues which can be a helpful way to quickly resolve simple errors or violations. In more complex cases you may need to manually review and update your code to ensure that it meets the expected standards.

Versioning

In this repository, we make use of changesets to version and publish the packages in this repository. Please check this if you want to submit a PR and never heard of changesets before.

About

ForgeUI

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ForgeTech

The monorepo of all ForgeTech

What's inside?

This repository includes the following packages and apps:

Apps and Packages

  • docs: The Documentation site of ForgeUI https://3squared.github.io/ForgeUI/
  • ui: Forge UI itself
  • playground: Playground as an easy way to display and explore components in a web browser
  • eslint-config-custom: shared eslint configurations

Install

npm install - This will install all the dependencies for all projects in the repository

Dev

npm run dev - This will run the Docs site in dev mode with hot reloading

Build

npm run build - This will build all packages and apps ready for release

Test

npm run test - This will test all packages and apps ready for release

Lint

npm run lint - This will lint all packages and apps

Contributing

Changesets

Changesets are a way of managing changes to your codebase in a structured and organized way. They allow you to group related changes into a single cohesive unit, which can then be reviewed, tested, and deployed as a single entity.

Changesets typically include one or more code changes, along with documentation updates, tests, and any other artifacts necessary to ensure the change is complete and correct. They include a description of the change along with a list of any relevant issues or pull requests that the change addresses.

To use changesets, you typically create a new branch or fork of your codebase, make your changes, and then commit them to the branch or fork. Once you have made all of your changes, you can then create a changeset, which will allow you to group all of the changes into a single cohesive unit.

Linting

In order to fix linting errors you will need to make changes to your code to bring it into compliance with the rules or guidelines being enforced by your linter. This might involve correcting syntax errors, updating variable names, or making other changes to ensure that your code conforms to the expected style and conventions.

Some linting tools also provide automatic fixes for common issues which can be a helpful way to quickly resolve simple errors or violations. In more complex cases you may need to manually review and update your code to ensure that it meets the expected standards.

Versioning

In this repository, we make use of changesets to version and publish the packages in this repository. Please check this if you want to submit a PR and never heard of changesets before.

About

ForgeUI

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages