Skip to content

docs: setup documentation WIP #72

Merged
kmendell merged 7 commits intomainfrom
docs/setup-docs
Apr 26, 2025
Merged

docs: setup documentation WIP #72
kmendell merged 7 commits intomainfrom
docs/setup-docs

Conversation

@kmendell
Copy link
Member

@kmendell kmendell commented Apr 26, 2025

Summary by CodeRabbit

  • New Features

    • Introduced a comprehensive documentation site for Arcane, including setup guides, feature overviews, and API/development references.
    • Added a visually enhanced homepage with a hero section, feature highlights, and interactive UI mockups.
    • Implemented reusable UI components and icons for consistent documentation visuals.
  • Documentation

    • Added detailed guides for installation, configuration, quick start, requirements, and contributing.
    • Included in-depth feature documentation for containers, images, and stacks management.
    • Provided architectural and development process documentation.
  • Style

    • Applied custom CSS themes with glassmorphism effects and responsive layouts for improved readability and modern appearance.
  • Chores

    • Added project configuration files for Docusaurus, TypeScript, and package management.
    • Configured sidebar navigation and documentation categories for easy access.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Apr 26, 2025

Walkthrough

This change introduces a comprehensive documentation site for the Arcane project, built using Docusaurus. It adds configuration files, documentation content, custom React components, CSS modules, and global styles to the docs directory. The documentation covers introductory material, getting started guides, feature overviews, API notes, development architecture, and contribution guidelines. The site is structured with a sidebar, custom homepage, and themed with glassmorphism and a purple color palette. Custom React components are provided for feature cards, grids, icons, and homepage features. All assets, configuration, and content are organized for a full-featured, responsive, and visually cohesive documentation experience.

Changes

File(s) / Path(s) Change Summary
docs/.gitignore
docs/README.md
docs/package.json
docs/tsconfig.json
docs/docusaurus.config.ts
docs/sidebars.ts
Added project-level configuration: gitignore, readme, npm scripts, TypeScript config, Docusaurus site config, sidebar structure.
docs/src/css/custom.css
docs/src/css/docs.css
Added global CSS files for theming, glassmorphism effects, and documentation-specific styles.
docs/src/components/FeatureCard/index.tsx
docs/src/components/FeatureCard/styles.module.css
docs/src/components/FeatureGrid/index.tsx
docs/src/components/FeatureGrid/styles.module.css
docs/src/components/HomepageFeatures/index.tsx
docs/src/components/HomepageFeatures/styles.module.css
docs/src/components/icons/ContainersIcon.tsx
docs/src/components/icons/ImagesIcon.tsx
docs/src/components/icons/NetworkIcon.tsx
docs/src/components/icons/index.ts
Added reusable React components and icons for feature display and homepage layout, with associated CSS modules for styling.
docs/src/pages/index.tsx
docs/src/pages/index.module.css
Added a custom homepage React component and CSS module with hero banner, feature grid, and mockup dashboard UI.
docs/src/pages/markdown-page.md Added a simple example markdown page with frontmatter.
docs/src/theme/Root.js Added a custom theme root component to preload and apply the "Inter" font globally via Google Fonts.
docs/docs/intro.md
docs/docs/getting-started/quickstart.md
docs/docs/getting-started/requirements.md
docs/docs/getting-started/installation.md
docs/docs/getting-started/configuration.md
Added introductory and getting started documentation covering overview, requirements, quickstart, installation, and configuration.
docs/docs/features/overview.mdx
docs/docs/features/containers/_category_.json
docs/docs/features/containers/overview.md
docs/docs/features/containers/managing-containers.md
docs/docs/features/containers/inspecting-logs.md
docs/docs/features/images/_category_.json
docs/docs/features/images/overview.md
docs/docs/features/images/managing-images.md
docs/docs/features/stacks/_category_.json
docs/docs/features/stacks/overview.md
docs/docs/features/stacks/managing-stacks.md
Added feature documentation for containers, images, and stacks, including overviews, management guides, and sidebar category configs.
docs/docs/api/overview.md
docs/docs/api/endpoints.md
Added API documentation clarifying internal/external API usage and architecture.
docs/docs/development/architecture.md
docs/docs/development/building.md
docs/docs/development/contributing.md
Added development documentation: architecture overview, build instructions, and contributing guidelines.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant DocsSite (Docusaurus)
    participant CustomComponents
    participant ArcaneRepo

    User->>DocsSite: Access documentation site
    DocsSite->>CustomComponents: Render homepage (FeatureGrid, FeatureCard, Icons)
    User->>DocsSite: Navigate sidebar/categories
    DocsSite->>DocsSite: Load markdown/MDX docs (intro, guides, features, API, dev)
    User->>DocsSite: Click "Get Started" or feature links
    DocsSite->>DocsSite: Display relevant documentation content
    User->>DocsSite: Follow instructions (e.g., clone repo, run Docker)
    DocsSite->>ArcaneRepo: Link to GitHub for source, issues, contributions
Loading
sequenceDiagram
    participant DocsSite
    participant Docusaurus
    participant User
    participant GitHub

    User->>DocsSite: Open documentation homepage
    DocsSite->>Docusaurus: Use config, sidebars, CSS, custom components
    DocsSite->>DocsSite: Apply custom theming (glassmorphism, fonts)
    User->>DocsSite: Browse guides, features, API, development docs
    DocsSite->>GitHub: Provide links for repo, issues, PRs
    User->>GitHub: Visit repo for source code or contribution
Loading

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

docs/docusaurus.config.ts

Oops! Something went wrong! :(

ESLint: 9.25.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@sveltejs/adapter-node' imported from /svelte.config.js
at packageResolve (node:internal/modules/esm/resolve:839:9)
at moduleResolve (node:internal/modules/esm/resolve:908:18)
at defaultResolve (node:internal/modules/esm/resolve:1038:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:557:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:525:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:246:38)
at ModuleJob._link (node:internal/modules/esm/module_job:126:49)
(node:6900) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)

docs/src/components/FeatureCard/styles.module.css

Oops! Something went wrong! :(

ESLint: 9.25.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@sveltejs/adapter-node' imported from /svelte.config.js
at packageResolve (node:internal/modules/esm/resolve:839:9)
at moduleResolve (node:internal/modules/esm/resolve:908:18)
at defaultResolve (node:internal/modules/esm/resolve:1038:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:557:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:525:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:246:38)
at ModuleJob._link (node:internal/modules/esm/module_job:126:49)
(node:6909) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)

docs/sidebars.ts

Oops! Something went wrong! :(

ESLint: 9.25.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@sveltejs/adapter-node' imported from /svelte.config.js
at packageResolve (node:internal/modules/esm/resolve:839:9)
at moduleResolve (node:internal/modules/esm/resolve:908:18)
at defaultResolve (node:internal/modules/esm/resolve:1038:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:557:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:525:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:246:38)
at ModuleJob._link (node:internal/modules/esm/module_job:126:49)
(node:6901) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)

  • 14 others
✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 53

🔭 Outside diff range comments (1)
docs/docs/features/images/managing-images.md (1)

46-54: 🧹 Nitpick (assertive)

Align list indentation
In the “Removing Images” section, steps 3 and 4 are not indented like the earlier sub-bullets. Align all numbered steps and their sub-items for consistent Markdown formatting.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7079dc1 and 6213a8c.

⛔ Files ignored due to path filters (9)
  • docs/package-lock.json is excluded by !**/package-lock.json
  • docs/static/img/arcane.png is excluded by !**/*.png
  • docs/static/img/docusaurus-social-card.jpg is excluded by !**/*.jpg
  • docs/static/img/docusaurus.png is excluded by !**/*.png
  • docs/static/img/favicon.ico is excluded by !**/*.ico
  • docs/static/img/logo.svg is excluded by !**/*.svg
  • docs/static/img/undraw_docusaurus_mountain.svg is excluded by !**/*.svg
  • docs/static/img/undraw_docusaurus_react.svg is excluded by !**/*.svg
  • docs/static/img/undraw_docusaurus_tree.svg is excluded by !**/*.svg
📒 Files selected for processing (43)
  • docs/.gitignore (1 hunks)
  • docs/README.md (1 hunks)
  • docs/docs/api/endpoints.md (1 hunks)
  • docs/docs/api/overview.md (1 hunks)
  • docs/docs/development/architecture.md (1 hunks)
  • docs/docs/development/building.md (1 hunks)
  • docs/docs/development/contributing.md (1 hunks)
  • docs/docs/features/containers/_category_.json (1 hunks)
  • docs/docs/features/containers/inspecting-logs.md (1 hunks)
  • docs/docs/features/containers/managing-containers.md (1 hunks)
  • docs/docs/features/containers/overview.md (1 hunks)
  • docs/docs/features/images/_category_.json (1 hunks)
  • docs/docs/features/images/managing-images.md (1 hunks)
  • docs/docs/features/images/overview.md (1 hunks)
  • docs/docs/features/overview.mdx (1 hunks)
  • docs/docs/features/stacks/_category_.json (1 hunks)
  • docs/docs/features/stacks/managing-stacks.md (1 hunks)
  • docs/docs/features/stacks/overview.md (1 hunks)
  • docs/docs/getting-started/configuration.md (1 hunks)
  • docs/docs/getting-started/installation.md (1 hunks)
  • docs/docs/getting-started/quickstart.md (1 hunks)
  • docs/docs/getting-started/requirements.md (1 hunks)
  • docs/docs/intro.md (1 hunks)
  • docs/docusaurus.config.ts (1 hunks)
  • docs/package.json (1 hunks)
  • docs/sidebars.ts (1 hunks)
  • docs/src/components/FeatureCard/index.tsx (1 hunks)
  • docs/src/components/FeatureCard/styles.module.css (1 hunks)
  • docs/src/components/FeatureGrid/index.tsx (1 hunks)
  • docs/src/components/FeatureGrid/styles.module.css (1 hunks)
  • docs/src/components/HomepageFeatures/index.tsx (1 hunks)
  • docs/src/components/HomepageFeatures/styles.module.css (1 hunks)
  • docs/src/components/icons/ContainersIcon.tsx (1 hunks)
  • docs/src/components/icons/ImagesIcon.tsx (1 hunks)
  • docs/src/components/icons/NetworkIcon.tsx (1 hunks)
  • docs/src/components/icons/index.ts (1 hunks)
  • docs/src/css/custom.css (1 hunks)
  • docs/src/css/docs.css (1 hunks)
  • docs/src/pages/index.module.css (1 hunks)
  • docs/src/pages/index.tsx (1 hunks)
  • docs/src/pages/markdown-page.md (1 hunks)
  • docs/src/theme/Root.js (1 hunks)
  • docs/tsconfig.json (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
docs/src/components/HomepageFeatures/index.tsx (5)
docs/src/components/icons/ContainersIcon.tsx (1)
  • ContainersIcon (3-19)
docs/src/components/icons/ImagesIcon.tsx (1)
  • ImagesIcon (3-20)
docs/src/components/icons/NetworkIcon.tsx (1)
  • NetworkIcon (3-21)
docs/src/components/FeatureGrid/index.tsx (1)
  • FeatureGrid (4-14)
docs/src/components/FeatureCard/index.tsx (1)
  • FeatureCard (5-23)
docs/src/pages/index.tsx (1)
docs/src/components/HomepageFeatures/index.tsx (1)
  • HomepageFeatures (7-43)
🪛 Biome (1.9.4)
docs/src/components/icons/ImagesIcon.tsx

[error] 5-14: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 15-15: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 16-16: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 17-17: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)

docs/src/components/icons/ContainersIcon.tsx

[error] 5-14: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 15-15: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 16-16: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)

docs/src/components/icons/NetworkIcon.tsx

[error] 5-14: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 15-15: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 16-16: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 17-17: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 18-18: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)

docs/src/pages/index.tsx

[error] 16-16: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 17-17: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 41-41: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 42-42: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 43-43: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 51-51: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 54-54: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 57-57: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 60-60: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 67-67: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 68-68: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 73-73: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 75-75: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 76-76: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 78-78: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 81-81: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 83-83: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 84-84: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 86-86: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 89-89: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 91-91: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 92-92: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 94-94: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)

🪛 LanguageTool
docs/src/pages/markdown-page.md

[grammar] ~7-~7: Did you mean “to React”?
Context: ...# Markdown page example You don't need React to write simple standalone pages.

(NEEDNT_TO_DO_AND_DONT_NEED_DO)

docs/docs/intro.md

[style] ~15-~15: This phrase is redundant (‘I’ stands for ‘Interface’). Use simply “UIInterface”.
Context: ... networks. ## Key Features - Modern UI Interface - Clean, intuitive design that makes ...

(ACRONYM_TAUTOLOGY)

docs/docs/features/stacks/overview.md

[uncategorized] ~18-~18: Loose punctuation mark.
Context: ...ile are running. - partially running: Some, but not all, services are running...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~19-~19: Loose punctuation mark.
Context: ...all, services are running. - stopped: No services belonging to the stack are ...

(UNLIKELY_OPENING_PUNCTUATION)

docs/docs/development/building.md

[misspelling] ~8-~8: This word is normally spelled with a hyphen.
Context: ...nt, test unreleased features, or create custom builds. ## Prerequisites - Node.js: Vers...

(EN_COMPOUNDS_CUSTOM_BUILDS)

docs/docs/features/images/overview.md

[uncategorized] ~22-~22: Possible missing preposition found.
Context: ...ing actions on Docker images: - List Images: View all images currently present on...

(AI_HYDRA_LEO_MISSING_OF)


[uncategorized] ~32-~32: Loose punctuation mark.
Context: ...likely including fields such as: - Id: The unique image ID. - RepoTags: A li...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~33-~33: Loose punctuation mark.
Context: ... Id: The unique image ID. - RepoTags: A list of repository names and tags ass...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~34-~34: Loose punctuation mark.
Context: ...s associated with the image. - Created: Timestamp of when the image was created...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~35-~35: Loose punctuation mark.
Context: ... of when the image was created. - Size: The virtual size of the image. - `Label...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~36-~36: Loose punctuation mark.
Context: ...he virtual size of the image. - Labels: Any metadata labels applied to the imag...

(UNLIKELY_OPENING_PUNCTUATION)

docs/docs/features/stacks/managing-stacks.md

[uncategorized] ~15-~15: Possible missing comma found.
Context: ...acks detected running on the Docker host but not yet managed by Arcane. These are ty...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~55-~55: You might be missing the article “a” here.
Context: ... Review the retrieved name and Compose definition. You may need to manually paste the cor...

(AI_EN_LECTOR_MISSING_DETERMINER_A)

docs/docs/development/architecture.md

[uncategorized] ~28-~28: Loose punctuation mark.
Context: ...SvelteKit structure: - src/routes: Contains the application's pages and AP...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~29-~29: Loose punctuation mark.
Context: ...ed routing is used here. - src/lib: Contains reusable components, utilities...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~30-~30: Loose punctuation mark.
Context: ...e services. - src/lib/components: Reusable Svelte UI components. - **`s...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~31-~31: Loose punctuation mark.
Context: ...I components. - src/lib/services: Backend services responsible for busine...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~32-~32: Loose punctuation mark.
Context: ...d external interactions. - docker/: Services interacting with Docker Engine...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~33-~33: Loose punctuation mark.
Context: ... operations. - settings-service.ts: Likely handles application settings per...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~34-~34: Loose punctuation mark.
Context: ...retrieval. - app-config-service.ts: Potentially manages application-level c...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~35-~35: Loose punctuation mark.
Context: ...configuration. - valkey-service.ts: Service for interacting with the Redis/...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~36-~36: Loose punctuation mark.
Context: ...Valkey instance. - src/lib/utils: General utility functions. - **static...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~37-~37: Loose punctuation mark.
Context: ...eneral utility functions. - static: Static assets like images or fonts. - *...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~38-~38: Loose punctuation mark.
Context: ...images or fonts. - hooks.server.ts: SvelteKit server hooks, used here to in...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~51-~51: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...pdate:** The frontend Svelte components update based on the received data. ## Key Arc...

(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)

docs/docs/features/containers/overview.md

[uncategorized] ~52-~52: Loose punctuation mark.
Context: ...pe.ts, including: - ServiceContainer`: For list views, containing essential de...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~53-~53: Loose punctuation mark.
Context: ..., status, and ports. - ContainerConfig: For creation, defining all the configur...

(UNLIKELY_OPENING_PUNCTUATION)

docs/docs/getting-started/quickstart.md

[style] ~27-~27: Consider using the synonym “brief” (= concise, using a few words, not lasting long) to strengthen your wording.
Context: ...Optional but Recommended):** Take a quick look at the docker-compose.yml file p...

(QUICK_BRIEF)

docs/docs/getting-started/configuration.md

[uncategorized] ~94-~94: Loose punctuation mark.
Context: ...to find these values. - DOCKER_GID: Set this to the group ID of the `docker...

(UNLIKELY_OPENING_PUNCTUATION)

docs/docs/development/contributing.md

[style] ~8-~8: The wording of this phrase can be improved.
Context: ...ontributions from the community to help make Arcane better. Whether it's reporting a bug, suggesti...

(MAKE_STYLE_BETTER)


[uncategorized] ~35-~35: You might be missing the article “the” here.
Context: ...t -b fix/issue-123 ``` 5. Set Up Development Environment: Follow the instructions ...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 markdownlint-cli2 (0.17.2)
docs/src/pages/markdown-page.md

5-5: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/intro.md

39-39: Inline HTML
Element: div

(MD033, no-inline-html)


40-40: Inline HTML
Element: strong

(MD033, no-inline-html)


40-40: Inline HTML
Element: code

(MD033, no-inline-html)

docs/README.md

5-5: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


7-7: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


8-8: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


13-13: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


14-14: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


21-21: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


22-22: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


31-31: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


32-32: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


37-37: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


38-38: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

docs/docs/features/images/overview.md

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/development/architecture.md

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/getting-started/requirements.md

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/features/containers/managing-containers.md

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/api/overview.md

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/features/containers/inspecting-logs.md

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/development/contributing.md

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)


21-21: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


24-24: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


26-26: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


28-28: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


30-30: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


34-34: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


36-36: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


39-39: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


42-42: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


45-45: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


48-48: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


53-53: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


55-55: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


58-58: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


60-60: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


62-62: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (46)
docs/src/css/docs.css (9)

12-14: Border accent on code blocks looks good
The purple-tinted border around code blocks enhances readability and aligns with the theme. No changes needed here.


17-21: Blockquote styling is effective
The increased padding and primary-color border make blockquotes stand out nicely. Well done.


24-29: Inline code styling is clear and unobtrusive
The light purple background and rounded corners improve inline code legibility. No issues detected.


42-46: Admonition note styling is on point
The tinted background and primary-color border clearly highlight info alerts. No changes required.


49-51: Sidebar menu padding enhances readability
Adding padding in the sidebar menu improves click targets and visual separation. Looks good.


54-57: Section heading spacing is balanced
Increasing the top margin for your h2 cards creates clear section breaks. Approved.


60-69: Base badge styles are solid
Your pill-shaped badges with uppercase text provide clear visual cues for new/beta features. No changes needed here.


71-74: “New” badge color scheme aligns with theme
The purple gradient background for .badge--new is cohesive and accessible against white text. Approved.


76-79: “Beta” badge color scheme is distinct
The orange-red gradient differentiates beta features effectively. No adjustments needed.

docs/docs/features/images/_category_.json (1)

1-5: Validate JSON category configuration
This _category_.json correctly defines the “Images” section as collapsible and initially collapsed in the sidebar. No changes needed.

docs/docs/features/containers/_category_.json (1)

1-5: Validate JSON category configuration
The “Containers” category is correctly marked as collapsible and collapsed by default. Looks good.

docs/docs/features/stacks/_category_.json (1)

1-5: Validate JSON category configuration
The “Stacks” category configuration is accurate and consistent with the other feature categories. Approved.

docs/tsconfig.json (1)

1-8: tsconfig.json setup for editor experience is correct.
This configuration cleanly extends @docusaurus/tsconfig, sets a sensible baseUrl, and excludes build artifacts (.docusaurus, build) from the TypeScript project scope, improving IDE responsiveness without affecting the documentation build.

docs/src/components/HomepageFeatures/styles.module.css (1)

1-6: HomepageFeatures CSS module defines clear layout and styling.
The flex container, centered alignment, and CSS variable for background color ensure theme consistency. The fixed SVG dimensions match the design spec for feature icons.

docs/.gitignore (1)

1-21: Ignore patterns cover necessary build and environment artifacts.
The .gitignore properly excludes node_modules, Docusaurus build folders, cache loaders, OS metadata, and environment files—keeping the repository clean of generated files.

docs/src/components/icons/index.ts (1)

1-3: Consolidated icon exports are set up correctly.
The re-export of ContainersIcon, ImagesIcon, and NetworkIcon follows best practices for barrel files, improving import ergonomics throughout the docs codebase.

docs/src/components/FeatureGrid/styles.module.css (1)

1-19: Styling looks solid
The CSS module defines a responsive grid with clear breakpoints and spacing. Using a CSS variable for the column count adds flexibility. I have no concerns here.

docs/src/theme/Root.js (1)

1-15: Font optimizations are correctly implemented
The <Head> element preconnects to Google Fonts and loads the Inter font with display=swap, which is a sound strategy within Docusaurus to optimize font loading. No changes needed.

docs/docs/api/endpoints.md (1)

1-15: Documentation is clear and accurate
The API Endpoints doc effectively communicates that Arcane doesn’t expose a public REST API and points users to the official Docker Engine API. Front matter, links, and formatting are correct. No edits required.

docs/docs/getting-started/installation.md (1)

1-34: Well-structured installation guide
The frontmatter, prerequisites, and installation methods are clear and the code blocks include proper language hints. This document is ready to ship.

docs/docusaurus.config.ts (2)

16-16: Review baseUrl for GitHub Pages deployment

The baseUrl is set to '/' which is correct for a custom domain, but GitHub Pages typically requires a project-specific base URL (e.g., '/arcane/'). Verify this setting based on your planned deployment environment.

If you're planning to deploy to GitHub Pages under a project namespace, consider updating this to match your repository name:

-	baseUrl: '/',
+	baseUrl: '/arcane/',

13-18: Verify organization and GitHub URLs

The configuration shows organization name as 'ofkm'. Verify this matches your actual GitHub organization/username for proper deployment.

docs/sidebars.ts (1)

6-80: Well-organized sidebar structure

The sidebar structure is clear, well-commented, and follows a consistent pattern for all categories. Great work on organizing the documentation systematically!

docs/docs/getting-started/requirements.md (1)

1-38: Documentation for System Requirements Looks Good

The frontmatter, structure, and content clearly outline both runtime and installation requirements. No issues found.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/features/images/overview.md (2)

22-22: Ignore missing preposition warning

The phrase “perform the following actions on Docker images:” is grammatically correct as written.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~22-~22: Possible missing preposition found.
Context: ...ing actions on Docker images: - List Images: View all images currently present on...

(AI_HYDRA_LEO_MISSING_OF)


1-41: Images Overview Documentation Looks Solid

Frontmatter, headings, and content accurately describe the key concepts, core functionalities, and data structure. The link to “Managing Images” is correctly formatted.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~22-~22: Possible missing preposition found.
Context: ...ing actions on Docker images: - List Images: View all images currently present on...

(AI_HYDRA_LEO_MISSING_OF)


[uncategorized] ~32-~32: Loose punctuation mark.
Context: ...likely including fields such as: - Id: The unique image ID. - RepoTags: A li...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~33-~33: Loose punctuation mark.
Context: ... Id: The unique image ID. - RepoTags: A list of repository names and tags ass...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~34-~34: Loose punctuation mark.
Context: ...s associated with the image. - Created: Timestamp of when the image was created...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~35-~35: Loose punctuation mark.
Context: ... of when the image was created. - Size: The virtual size of the image. - `Label...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~36-~36: Loose punctuation mark.
Context: ...he virtual size of the image. - Labels: Any metadata labels applied to the imag...

(UNLIKELY_OPENING_PUNCTUATION)

🪛 markdownlint-cli2 (0.17.2)

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/development/building.md (2)

8-8: Ignore hyphenation suggestion

“unreleased features” is correctly written without a hyphen in this context.

🧰 Tools
🪛 LanguageTool

[misspelling] ~8-~8: This word is normally spelled with a hyphen.
Context: ...nt, test unreleased features, or create custom builds. ## Prerequisites - Node.js: Vers...

(EN_COMPOUNDS_CUSTOM_BUILDS)


1-98: Build Guide is Clear and Complete

The steps for cloning, installing, running, building, and Dockerizing Arcane are comprehensive. Frontmatter and formatting align with other development documentation.

🧰 Tools
🪛 LanguageTool

[misspelling] ~8-~8: This word is normally spelled with a hyphen.
Context: ...nt, test unreleased features, or create custom builds. ## Prerequisites - Node.js: Vers...

(EN_COMPOUNDS_CUSTOM_BUILDS)

docs/docs/features/containers/inspecting-logs.md (1)

6-6: Ignore lint warning about multiple H1s

Using frontmatter for metadata and a single H1 for the title makes sense; the lint rule can be safely ignored.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/src/components/FeatureCard/styles.module.css (1)

1-53: FeatureCard CSS Module Styles Reviewed

The CSS module defines a polished card layout with blur effects, theme-aware backgrounds, and smooth hover interactions. Class naming is consistent with the design system. No changes needed.

docs/package.json (1)

17-25:

Details

✅ Verification successful

Verify React version compatibility
You’ve declared "react": "^19.0.0" but Docusaurus v3.7.0 often lists React 18 as a peer dependency. Please confirm compatibility:


🏁 Script executed:

#!/bin/bash
# Check React peerDependency for @docusaurus/core@3.7.0
curl -s https://registry.npmjs.org/@docusaurus/core/3.7.0 | jq .peerDependencies.react

Length of output: 109


React 19 compatibility confirmed
Docusaurus v3.7.0 declares a peer dependency of "react": "^18.0.0 || ^19.0.0", so using "react": "^19.0.0" is fully supported. No changes needed.

docs/src/pages/index.module.css (3)

1-9: Hero banner styling is well-structured
The .heroBanner block provides clear layout, centering, and layering. It’s clean and responsive.


122-131: Mockup window uses effective glassmorphism
The translucent background, border, and shadow achieve the desired effect with proper fallbacks.


395-422: Responsive media queries are comprehensive
The breakpoints and layout adjustments cover key viewport ranges, ensuring a fluid experience.

docs/docs/getting-started/quickstart.md (2)

10-15: Prerequisites clearly defined
Listing Docker Engine, Docker Compose, and Git covers the essentials without overloading the user.


57-62: Verify relative links resolve correctly
The links to installation.md and configuration.md are helpful. Ensure they render properly in the Docusaurus-generated site.

docs/docs/development/contributing.md (1)

68-71: Code style instructions are clear
Specifying npm run lint and npm run format along with links to ESLint and Prettier docs is helpful.

docs/docs/features/stacks/overview.md (1)

1-47: Approve Stacks Overview documentation.

The overview is comprehensive, clearly organized, and consistent with Docusaurus conventions. All key concepts, operations, and storage details are well-described, and relative links (e.g., Storage, Create and Manage Stacks) are appropriate.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~18-~18: Loose punctuation mark.
Context: ...ile are running. - partially running: Some, but not all, services are running...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~19-~19: Loose punctuation mark.
Context: ...all, services are running. - stopped: No services belonging to the stack are ...

(UNLIKELY_OPENING_PUNCTUATION)

docs/docs/features/stacks/managing-stacks.md (1)

1-57: Approve Managing Stacks documentation.

The guide is well-structured, with clear steps for viewing, creating, inspecting, controlling, and importing stacks. Frontmatter, headings, lists, and code references follow conventions and integrate smoothly with the broader documentation.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~15-~15: Possible missing comma found.
Context: ...acks detected running on the Docker host but not yet managed by Arcane. These are ty...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~55-~55: You might be missing the article “a” here.
Context: ... Review the retrieved name and Compose definition. You may need to manually paste the cor...

(AI_EN_LECTOR_MISSING_DETERMINER_A)

docs/src/css/custom.css (1)

1-173: Approve global custom CSS.

The custom CSS variables and styles are well-organized, follow consistent naming conventions, and include necessary vendor prefixes for cross-browser compatibility. The light and dark theme overrides, glassmorphism effects, and component styling integrate cohesively with Infima and Docusaurus theming.

docs/docs/features/containers/overview.md (2)

26-27: Verify attachment IDs and references.

Ensure that the referenced attachment IDs (#attachment_columns_ts, #attachment_page_svelte) correspond to actual code snippets or components in the repo; otherwise the links will be broken in the docs.


1-60: Approve Containers Overview documentation.

This overview clearly defines container concepts and core functionality, with appropriate inline code, anchors, and next-step links. The structure and content align well with the rest of the documentation.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~52-~52: Loose punctuation mark.
Context: ...pe.ts, including: - ServiceContainer`: For list views, containing essential de...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~53-~53: Loose punctuation mark.
Context: ..., status, and ports. - ContainerConfig: For creation, defining all the configur...

(UNLIKELY_OPENING_PUNCTUATION)

docs/docs/features/containers/managing-containers.md (1)

1-57: Approve Managing Containers documentation.

The document provides a thorough, step-by-step guide for listing, creating, controlling, and removing containers via the Arcane UI. It uses consistent formatting, clear headings, and in-context references to UI components and services.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

6-6: Multiple top-level headings in the same document
null

(MD025, single-title, single-h1)

docs/docs/development/architecture.md (1)

1-4: Verify frontmatter alignment with sidebars.ts
Please ensure that sidebar_position: 1 correctly maps to the “Development” category in docs/sidebars.ts and that this file appears in the intended order.

docs/docs/features/images/managing-images.md (1)

1-4: Verify sidebar inclusion
Confirm that sidebar_position: 2 places this page correctly under the “Images” category in docs/sidebars.ts so it appears in the intended order.

docs/docs/getting-started/configuration.md (1)

1-4: Verify sidebar ordering
Please confirm that sidebar_position: 3 correctly slots this page under the “Getting Started” section in docs/sidebars.ts.

Comment on lines +32 to +39
.table-of-contents {
padding: 1rem;
border-radius: 0.5rem;
background-color: var(--arcane-glass-bg);
backdrop-filter: blur(5px);
-webkit-backdrop-filter: blur(5px);
border: 1px solid var(--arcane-glass-border);
}
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Add fallback for unsupported backdrop-filter
Not all browsers support backdrop-filter. Consider specifying a solid or semi-transparent background before the blurred one to ensure legibility in those browsers.

Example diff:

@@ docs/src/css/docs.css:32-39
 .table-of-contents {
-	padding: 1rem;
+	padding: 1rem;
 	border-radius: 0.5rem;
-	background-color: var(--arcane-glass-bg);
+	/* Fallback for browsers without backdrop-filter */
+	background-color: rgba(255, 255, 255, 0.8);
+	background-color: var(--arcane-glass-bg);
 	backdrop-filter: blur(5px);
 	-webkit-backdrop-filter: blur(5px);
 	border: 1px solid var(--arcane-glass-border);
 }

Comment on lines +6 to +9
.docs-wrapper {
background-image: radial-gradient(circle at 25% 5%, rgba(139, 92, 246, 0.05) 0%, transparent 20%), radial-gradient(circle at 75% 80%, rgba(139, 92, 246, 0.07) 0%, transparent 25%);
min-height: 100vh;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Use CSS variables for gradient colors
Rather than repeating hardcoded RGBA values, consider using your existing Arcane color variables (e.g., --arcane-purple-light) to improve maintainability and theming flexibility.

Apply this diff to replace the hardcoded colors:

@@ docs/src/css/docs.css:6-9
 .docs-wrapper {
-	background-image: radial-gradient(circle at 25% 5%, rgba(139, 92, 246, 0.05) 0%, transparent 20%), radial-gradient(circle at 75% 80%, rgba(139, 92, 246, 0.07) 0%, transparent 25%);
+	background-image: radial-gradient(circle at 25% 5%, var(--arcane-purple-light, rgba(139, 92, 246, 0.05)) 0%, transparent 20%),
+	                radial-gradient(circle at 75% 80%, var(--arcane-purple-light-2, rgba(139, 92, 246, 0.07)) 0%, transparent 25%);
 	min-height: 100vh;
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
.docs-wrapper {
background-image: radial-gradient(circle at 25% 5%, rgba(139, 92, 246, 0.05) 0%, transparent 20%), radial-gradient(circle at 75% 80%, rgba(139, 92, 246, 0.07) 0%, transparent 25%);
min-height: 100vh;
}
.docs-wrapper {
background-image: radial-gradient(
circle at 25% 5%,
var(--arcane-purple-light, rgba(139, 92, 246, 0.05)) 0%,
transparent 20%
),
radial-gradient(
circle at 75% 80%,
var(--arcane-purple-light-2, rgba(139, 92, 246, 0.07)) 0%,
transparent 25%
);
min-height: 100vh;
}

@@ -0,0 +1,20 @@
import React from 'react';

export default function ImagesIcon({ className }) {
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add TypeScript props typing
This component is in a .tsx file but lacks prop type definitions. Defining an interface will improve type safety and documentation.

Example:

-export default function ImagesIcon({ className }) {
+interface ImagesIconProps {
+  className?: string;
+}
+
+export default function ImagesIcon({ className }: ImagesIconProps): JSX.Element {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
export default function ImagesIcon({ className }) {
interface ImagesIconProps {
className?: string;
}
export default function ImagesIcon({ className }: ImagesIconProps): JSX.Element {

Comment on lines +15 to +17
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
<circle cx="9" cy="9" r="2"></circle>
<path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Self-close empty SVG elements
JSX allows self-closing tags for elements without children. This cleans up the markup.

@@ docs/src/components/icons/ImagesIcon.tsx:15-17
-      <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
-      <circle cx="9" cy="9" r="2"></circle>
-      <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
+      <rect x="3" y="3" width="18" height="18" rx="2" ry="2" />
+      <circle cx="9" cy="9" r="2" />
+      <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" />
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
<circle cx="9" cy="9" r="2"></circle>
<path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
<rect x="3" y="3" width="18" height="18" rx="2" ry="2" />
<circle cx="9" cy="9" r="2" />
<path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" />
🧰 Tools
🪛 Biome (1.9.4)

[error] 15-15: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 16-16: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 17-17: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)

Comment on lines +5 to +13
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className={className}
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Include accessible title and ARIA attributes
SVG icons need alternative text for screen readers. Add a <title> and either role="img" with aria-labelledby or aria-label.

Suggested diff:

@@ docs/src/components/icons/ImagesIcon.tsx:5-13
-  return (
-    <svg 
+  return (
+    <svg
+      role="img"
+      aria-labelledby="imagesIconTitle"
       xmlns="http://www.w3.org/2000/svg" 
       viewBox="0 0 24 24" 
       fill="none" 
       stroke="currentColor" 
       strokeWidth="2" 
       strokeLinecap="round" 
       strokeLinejoin="round" 
       className={className}
-    >
+    >
+      <title id="imagesIconTitle">Images icon</title>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className={className}
return (
<svg
role="img"
aria-labelledby="imagesIconTitle"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className={className}
>
<title id="imagesIconTitle">Images icon</title>
{/* existing SVG paths/shapes */}
</svg>
);
🧰 Tools
🪛 Biome (1.9.4)

[error] 5-14: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)

Comment on lines +108 to +113
export default function Home(): ReactNode {
const { siteConfig } = useDocusaurusContext();
return (
<Layout
title={`Arcane - ${siteConfig.tagline}`}
description="Arcane is a Simple and Elegant Docker Management UI written in Typescript and SvelteKit. Explore the documentation to get started."
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Refine return type annotation
The Home component is currently typed to return ReactNode, but it always returns JSX. Updating the signature to (): JSX.Element provides more accurate typing.

Comment on lines +16 to +17
<div className={styles.heroGradient}></div>
<div className={styles.heroGlass}></div>
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Convert empty <div> elements to self-closing tags
Elements such as <div className={styles.heroGradient}></div> and <div className={styles.mockupButtonRed}></div> have no children. Using self-closing syntax (<div … />) aligns with common JSX style guides.

Also applies to: 41-43

🧰 Tools
🪛 Biome (1.9.4)

[error] 16-16: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)


[error] 17-17: JSX elements without children should be marked as self-closing. In JSX, it is valid for any element to be self-closing.

Unsafe fix: Use a SelfClosingElement instead

(lint/style/useSelfClosingElements)

Comment on lines +17 to +24
// filepath: /app/data/app-settings.json
{
"dockerHost": "unix:///var/run/docker.sock",
"autoRefresh": true,
"pollingInterval": 5,
"stacksDirectory": "/app/data/stacks"
}
```
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix invalid JSON comments
The JSON snippet includes // filepath: comments, which aren’t valid in strict JSON. You can either remove the comment or change the code block language to jsonc to indicate JSON with comments.

Comment on lines +96 to +104
```yaml
# docker-compose.yml excerpt
services:
arcane:
# ... other settings
environment:
- PUID=1000
- PGID=1000
- DOCKER_GID=998 # Example GID, replace with yours
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Highlight environment variable importance
Wrap the PUID, PGID, and DOCKER_GID section in an admonition (e.g., :::note) to emphasize that matching host IDs is critical for correct permissions.

Comment on lines +61 to +69
```yaml
# docker-compose.yml excerpt
services:
arcane:
# ... other settings
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Mount Docker socket
- ./arcane-data:/app/data # Mount data directory
# ... other settings
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Link to full compose example
The Docker Compose excerpt is helpful. To provide an end-to-end reference, consider linking to a complete docker-compose.yml in the repo or a Helm chart example.

@kmendell kmendell merged commit 0fbaf2b into main Apr 26, 2025
2 checks passed
@kmendell kmendell deleted the docs/setup-docs branch April 26, 2025 22:41
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.

1 participant