📰 IT NachrichtenWhy It’s Difficult for Tech Companies to Rein In A.I.(12.09.2026 um 11:02 Uhr)
🔧 AI Nachrichten Etzioni on AI: What kids tell chatbots, but not you(04.09.2026 um 16:05 Uhr)
🔧 AI Nachrichten OpenAI Wants to Know if an AI Industry Slowdown Would Even Be Legal(11.09.2026 um 01:28 Uhr)
🔧 AI Nachrichten OpenAI puts Pro subscriptions on hold due to Astra demand(10.09.2026 um 22:59 Uhr)
📰 IT NachrichtenWhy It’s Difficult for Tech Companies to Rein In A.I.(12.09.2026 um 11:02 Uhr)
🔧 AI Nachrichten Etzioni on AI: What kids tell chatbots, but not you(04.09.2026 um 16:05 Uhr)
🔧 AI Nachrichten OpenAI Wants to Know if an AI Industry Slowdown Would Even Be Legal(11.09.2026 um 01:28 Uhr)
🔧 AI Nachrichten OpenAI puts Pro subscriptions on hold due to Astra demand(10.09.2026 um 22:59 Uhr)

🔧 Programmierung 🕛 vor 1 Jahr 6 Min Lesezeit
0

ONCSS

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht




oncss



oncss is a CSS-in-JS library that provides developers with a powerful css function to style their web applications. It enables modern styling techniques, including nested selectors, responsive design, and dynamic keyframes, all while offering seamless integration with JavaScript frameworks like React.









Installation



Install the oncss package via npm:




CODE
npm install oncss






Import the css function in your project:




CODE
import css from 'oncss';












Core Concept: The css Function



The css function is the heart of oncss, designed to dynamically generate and inject CSS into your application. It supports:





  • CSS Properties: Use standard CSS properties and values.


  • Nested Selectors: Apply styles to child elements or states using &.


  • Media Queries: Implement responsive designs with @media rules.


  • Keyframes: Create animations with @keyframes.


  • Global Styles: Apply styles globally with @global.


  • Custom Breakpoints: Define reusable breakpoints for responsiveness.


  • Other At-Rules: Utilize additional at-rules like @container, @layer, and @supports.






Basic Example






CODE
const buttonStyles = css({
backgroundColor: 'blue',
color: 'white',
padding: '10px 20px',
borderRadius: '5px',
'&:hover': {
backgroundColor: 'darkblue',
},
'@media (min-width: 768px)': {
padding: '15px 30px',
},
});

console.log(buttonStyles);












Configuration Options



The css function can be customized through an options object:






Available Properties
















































Property Type Description
classPrefix string Adds a prefix to generated class names.
breakpoints object Custom breakpoints for responsive designs.
aliases object Custom shorthand properties for CSS rules.
injectStyle boolean Controls whether styles are auto-injected.
skipProps function Filters out unwanted properties.
getValue function Transforms property values dynamically.
getProps function Customizes specific property handling.





Example with Options






CODE
const styles = css({
fontSize: 16,
padding: 10,
}, {
classPrefix: 'myprefix',
breakpoints: {
sm: 480,
md: 768,
lg: 1024,
},
});









Using Breakpoints



You can use the defined breakpoints in your styles to create responsive designs:




CODE
const responsiveStyles = css({
fontSize: 14,
padding: {
sm: 12,
lg: 24
},

}, {
breakpoints: {
sm: 480,
md: 768,
lg: 1024,
},
});












React Integration



oncss integrates seamlessly with React. Simply pass the generated class name to your component.






React Example






CODE
import React from 'react';
import css from 'oncss';

const buttonStyle = css({
backgroundColor: 'green',
color: 'white',
padding: '10px 20px',
borderRadius: '8px',
'&:hover': {
backgroundColor: 'darkgreen',
},
});

function Button() {
return <button className={buttonStyle.toString()}>Click Me</button>;
}

export default Button;












Advanced Features






Nested Selectors



Apply styles to child elements or pseudo-classes:




CODE
const cardStyles = css({
padding: '20px',
border: '1px solid #ccc',
'& h1': {
fontSize: '24px',
margin: 0,
},
'&:hover': {
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.1)',
},
});









Media Queries



Easily add responsive styles:




CODE
const responsiveStyles = css({
fontSize: '14px',
'@media (min-width: 768px)': {
fontSize: '18px',
},
});









Keyframes



Define and use animations:




CODE
const animationStyles = css({
'@keyframes fadeIn': {
from: { opacity: 0 },
to: { opacity: 1 },
},
animation: 'fadeIn 2s ease-in-out',
});









Global Styles



Apply global styles effortlessly:




CODE
const globalStyles = css({
'@global': {
body: {
margin: 0,
fontFamily: 'Arial, sans-serif',
},
a: {
color: 'blue',
textDecoration: 'none',
},
},
});












Supported At-Rules



oncss supports various CSS at-rules to enhance your styling capabilities. Here is a list of supported at-rules with descriptions:




































At-Rule Description
@media Used for applying styles based on media queries for responsive design.
@keyframes Defines animations that can be applied to elements.
@global Applies styles globally across the entire application.
@container Used for container queries to apply styles based on container size.
@layer Defines style layers to control the order of style application.
@supports Applies styles based on the support of specific CSS features in the browser.








Server-Side Styling



oncss supports server-side rendering (SSR) by utilizing the CSSFactory to store and manage generated CSS styles. This allows you to extract and inject styles into your server-rendered HTML.






Example with React



Here's an example of how to use oncss for server-side rendering with React:




CODE
import React from 'react';
import ReactDOMServer from 'react-dom/server';
import css, { CSSFactory } from 'oncss';

const buttonStyle = css({
backgroundColor: 'blue',
color: 'white',
padding: '10px 20px',
borderRadius: '5px',
'&:hover': {
backgroundColor: 'darkblue',
},
});

function Button() {
return <button className={buttonStyle}>Click Me</button>;
}

const App = () => (
<div>
<Button />
</div>
);

// Render the component to a string
const html = ReactDOMServer.renderToString(<App />);

// Extract the generated CSS from CSSFactory
const styles = Array.from(CSSFactory.values())
.map(style => style.css)
.join('\n');

// Inject the styles into the HTML
const fullHtml = `
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SSR with oncss</title>
<style>
${styles}</style>
</head>
<body>
<div id="root">
${html}</div>
</body>
</html>
`
;

console.log(fullHtml);






In this example, the CSSFactory is used to collect all generated CSS styles during the server-side rendering process. These styles are then injected into the HTML document, ensuring that the styles are applied correctly when the page is loaded in the browser.









Utility Functions






CSSFactory



CSSFactory is a global cache for storing generated CSS styles. It helps in reusing styles and avoiding redundant style generation.






formatCSSProp



formatCSSProp is a utility function that converts camelCase CSS property names to kebab-case.




CODE
import { formatCSSProp } from 'oncss';

const formattedProp = formatCSSProp('backgroundColor');
console.log(formattedProp); // 'background-color'









formatCSSValue



formatCSSValue is a utility function that formats CSS values, adding units like px where necessary.




CODE
import { formatCSSValue } from 'oncss';

const formattedValue = formatCSSValue('width', 100);
console.log(formattedValue); // '100px'












TypeScript Integration



oncss provides full TypeScript support, allowing you to define types for your CSS properties and options.






Defining CSS Properties



You can define the types for your CSS properties using the CSSProps type:




CODE
import { CSSProps } from 'oncss';

interface MyAliases {
customColor?: string;
}

const styles: CSSProps<MyAliases, 'sm' | 'md' | 'lg'> = {
backgroundColor: 'blue',
customColor: 'red',
'@media (min-width: 768px)': {
backgroundColor: 'green',
},
};









Using Options with Types



You can also define types for the options object:




CODE
import { CSSOptionProps } from 'oncss';

const options: CSSOptionProps<MyAliases, 'sm' | 'md' | 'lg'> = {
classPrefix: 'myprefix',
breakpoints: {
sm: 480,
md: 768,
lg: 1024,
},
aliases: {
customColor: (prop, value) => ({ color: value }),
},
};

const styles = css({
fontSize: 16,
padding: 10,
}, options);












Conclusion



oncss simplifies styling for modern web applications. Its robust feature set, from responsive design to keyframe animations, makes it an invaluable tool for developers.






Author







devnax

Naxrul Ahmed





instagram

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
5 Quellen
Rockwell Automation FactoryTalk Activation Manager
3 Quellen
September-Patchday: Adobe schließt kritische Zero-Day-Lücke und 172 weitere
2 Quellen
Jetzt patchen! Angreifer attackieren JFrog Artifactory und machen sich zu Admins
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten ONCSS

Thematisch verwandte Begriffe: ONCSS · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
📂 News ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

↗ Original-Quelle
Zum Aktualisieren ziehen
ZERO-DAY Kritische Sicherheitsmeldung
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen