ClubUp · README pre vývojárov

Brand v kóde.

Tento dokument je sprievodca pre programátorov projektu clubup.sk. Obsahuje hotové dizajn-tokeny, CSS premenné, Tailwind preset, ukážky komponentov a checklist toho, čo musí PR spĺňať z hľadiska značky.

01Inštalácia

Brand kit je súčasťou marketingového webu — všetky logá, tokeny aj manuál sú v website/brand/ a po nasadení verejne dostupné na https://clubup.sk/brand/. Pre použitie v aplikáciách (študent, admin) referencujte CSS / Tailwind preset priamo z tohto priečinka v repe.

# V monorepe — referencuj priamo
src/apps/app/app/globals.css:
  @import '../../../../website/brand/tokens/clubup-tokens.css';

# V externom projekte — kópia alebo CDN
curl https://clubup.sk/brand/tokens/clubup-tokens.css -o ./brand/tokens/clubup-tokens.css

# Alebo cez git submodul (pre nezávislé projekty)
git submodule add https://github.com/ltksolutions/clubup brand-upstream

02Štruktúra brand priečinka

website/brand/ ├── BRAND.md # Markdown index pre dev/marketing/PR ├── index.html # Brand Hub — start here ├── manual.html # 10-stránkový A4 manuál (HTML) ├── logo.html # export hub všetkých variantov loga ├── icons.html # 32-icon galéria, copy-to-clipboard ├── dev.html # tento súbor │ ├── logo/ # SVG logá — nikdy needituj manuálne │ ├── clubup-logo-primary.svg # default, plné farebné │ ├── clubup-logo-dark.svg # pre tmavé pozadia │ ├── clubup-logo-mono-navy.svg # jednofarebné navy │ ├── clubup-logo-mono-black.svg # tlač │ ├── clubup-logo-mono-white.svg # pre fotky / tmavé │ └── clubup-logo-original.svg # master archív │ └── tokens/ ├── clubup-tokens.css # CSS custom properties ├── clubup-tokens.json # DTCG-format tokeny └── tailwind.config.js # Tailwind preset

04Farby

TokenHEXPoužitie
--clubup-navy#1A2D47Primárna značková, hlavičky, navigácia
--clubup-blue#388FC3Akcent, linky, focus, primárne tlačidlá
--clubup-pale#E8F4FDTinted surface, chips, badges
--clubup-ink#0E1320Default text
--clubup-gray#8E8E92Muted text, captions
--clubup-line#E2E5EABorders, dividers
--clubup-bg#F4F6F8Page background
--clubup-success#2E8B57OK stavy
--clubup-warning#E0A33EUpozornenia
--clubup-danger#C8453BChyby, deštrukcia
60-30-10 pravidlo: 60 % plochy biela / pale, 30 % navy (akcenty + CTA pozadia), 10 % blue (linky, ikonové akcenty, focus). Nepoužívajte navy ako background pre celú stránku — iba pre hlavičky a hero sekcie.

05Typografia

Dva fonty z Google Fonts + jeden monospace. Importujte ich na začiatku každej HTML stránky alebo cez CSS @import.

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,500;1,700&display=swap">
FontPoužitieWeights
PoppinsUI a body text — všetko default300 / 400 / 500 / 600 / 700 / 800
Poppins italicAkcent — display nadpisy, citácieitalic 500 / 700
JetBrains MonoCode, čísla, štítky, metadata400 / 500 / 600

06Spacing & radius

8-bodový systém. Všetky odsadenia a veľkosti = násobky 4 px. Žiadne 7, 13, 25.

/* Spacing */
--clubup-space-1: 4px;
--clubup-space-2: 8px;
--clubup-space-3: 12px;
--clubup-space-4: 16px;   /* gap default */
--clubup-space-5: 24px;   /* card padding default */
--clubup-space-6: 32px;
--clubup-space-7: 48px;   /* section gap */
--clubup-space-8: 64px;

/* Radius */
--clubup-radius-sm: 6px;    /* buttons, inputs */
--clubup-radius-md: 8px;    /* icon containers */
--clubup-radius-lg: 12px;   /* cards */
--clubup-radius-xl: 16px;   /* modals */

07CSS premenné

Importujte tokens/clubup-tokens.css raz, na vrchole vašej globálnej kaskády.

/* app.css */
@import './brand/tokens/clubup-tokens.css';

/* Použitie */
.btn-primary {
  background: var(--clubup-blue);
  color: var(--clubup-paper);
  padding: var(--clubup-space-2) var(--clubup-space-4);
  border-radius: var(--clubup-radius-sm);
  font-family: var(--clubup-font-sans);
  font-weight: 500;
  transition: var(--clubup-dur-base) var(--clubup-ease);
}
.btn-primary:hover { background: var(--clubup-blue-2); }

08Tailwind preset

// tailwind.config.js
const clubup = require('./brand/tokens/tailwind.config.js');

module.exports = {
  presets: [clubup],
  content: ['./src/**/*.{ts,tsx,html}'],
};

Po nastavení máte k dispozícii triedy ako bg-clubup-navy, text-clubup-blue, shadow-clubup-card, rounded-lg (12 px).

09React komponenty — ukážky

Button

export function Button({ variant = 'primary', ...props }) {
  const styles = {
    primary:   'bg-clubup-blue text-white hover:bg-clubup-blue-2',
    secondary: 'bg-clubup-navy text-white hover:bg-clubup-navy-2',
    outline:   'bg-transparent border border-clubup-navy text-clubup-navy',
    ghost:     'bg-transparent text-clubup-blue hover:bg-clubup-pale',
  };
  return <button
    className={`px-4 py-2 rounded-sm font-medium text-sm transition ${styles[variant]}`}
    {...props}
  />;
}

Card

export function Card({ icon, title, children }) {
  return (
    <div className="bg-white border border-clubup-line rounded-lg p-5 shadow-clubup-card">
      <div className="w-8 h-8 rounded-md bg-clubup-pale text-clubup-blue grid place-items-center mb-3">
        {icon}
      </div>
      <h4 className="text-clubup-navy font-semibold mb-1">{title}</h4>
      <p className="text-clubup-gray text-sm leading-relaxed">{children}</p>
    </div>
  );
}

Logo komponent

import primary from '@/brand/logo/clubup-logo-primary.svg';
import dark    from '@/brand/logo/clubup-logo-dark.svg';

export function Logo({ variant = 'primary', height = 40 }) {
  const src = variant === 'dark' ? dark : primary;
  return <img src={src} height={height} alt="ClubUp" />;
}

10Ikony

Ikony sú inline SVG, 24×24 viewBox, stroke 1.8 px, stroke-linecap="round". Skopírujte konkrétnu ikonu z icons.html klikom na ikonu — uloží sa do schránky ako SVG.

// Príklad — ikona „dashboard“
export const DashboardIcon = ({ size = 24 }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none">
    <rect x="3" y="3" width="8" height="10" rx="1.5"
          stroke="currentColor" strokeWidth="1.8" />
    <rect x="13" y="3" width="8" height="6" rx="1.5"
          stroke="#388FC3" strokeWidth="1.8" />
    </* ... */>
  </svg>
);
Pravidlo akcentu: každá ikona má jeden modrý prvok (#388FC3). Zvyšok je currentColor, aby sa dal prefarbiť cez CSS.

11PR checklist

Pred mergom skontrolujte:

12Vlastníctvo a zmeny

Značku vlastní LTK Solutions s.r.o. Akékoľvek úpravy manuálu, loga alebo tokenov musia prejsť cez Pull Request s reviewom dizajnéra. Otázky cez Issues alebo e-mailom.

Repozitárgithub.com/ltksolutions/clubup
Dizajn issuesgithub.com/ltksolutions/clubup/labels/brand
Kontaktinfo@clubup.sk
Sesterskésportup.sk · activity.sportup.sk