NETFRAME_DOCS // GETTING STARTED
GITHUB

Getting Started

NetFrame is a pure CSS component library. No JavaScript framework required — drop in the stylesheet and use the classes.

Installation

npm install netframe
# or
pnpm add netframe
# or
yarn add netframe

Usage

Bundler (Vite, Webpack, etc.)

import 'netframe/dist/netframe.css';
<link rel="stylesheet" href="https://unpkg.com/netframe/dist/netframe.min.css" />

Sass consumers

If you want access to the raw Sass tokens and mixins in your own .scss files, use Dart Sass’s Node package importer (pkg: URLs, Sass 1.71+; enable it with --pkg-importer=node on the CLI or importers: [new NodePackageImporter()] in the JS API):

// Import everything
@use 'pkg:netframe/scss/netframe';

// Or cherry-pick
@use 'pkg:netframe/scss/tokens';
@use 'pkg:netframe/scss/mixins/neon-glow' as *;

Fonts are referenced as ../fonts/*.woff2 relative to the output CSS. Serve the files from netframe/fonts/ (e.g. copy them next to your CSS), or point the URLs elsewhere:

@use 'pkg:netframe/scss/netframe' with ($nf-font-path: '/assets/fonts');

CRT Overlay

The scanline effect is a core identity element. Add .nf-crt to <body> to apply it globally:

<body class="nf-crt">
  ...
</body>

This adds a fixed full-screen pseudo-element with the RGB phosphor + 3px scanline pattern. It uses pointer-events: none and z-index: 9999 so it floats above all content without interfering with interaction.


Icons

NetFrame uses Phosphor Thin icons. Install and reference them:

<!-- CDN -->
<script src="https://unpkg.com/@phosphor-icons/web@2.1.1/src/thin/index.js" type="module"></script>

<!-- Usage -->
<i class="ph-thin ph-terminal"></i>
<i class="ph-thin ph-folder-open"></i>

Or install as a package:

npm install @phosphor-icons/web

First component

PRIMARY BUTTON

<button class="nf-button nf-button-primary">
INITIALIZE
</button>

Browser support

NetFrame uses color-mix(), CSS nesting, and :focus-visible. Supported in all evergreen browsers (Chrome 111+, Firefox 113+, Safari 16.4+).