Design

Design system for haritssr.com and harimaki.com.

Principles

  1. Existence=f(constraints, maintenance, …)\text{Existence} = f(\text{constraints},\ \text{maintenance},\ \ldots)
  2. The devil is in the details.
  3. Show, don’t tell.
  4. User Interface Principles
  5. Navigation should stay out of the way while browsing, yet be instantly available when needed.
  6. Hide the bottom tab bar on content pages.
  7. Concise explanations accelerate progress.
  8. Recognize patterns through repeated observation and reflection.
  9. Use Oklab or Oklch for perceptually balanced colors and gradients.
  10. Every modal should appear instantly, with no animation or transition.
  11. Strive for one line navigation layer on all screen views as possible.
  12. Defining feature or update make it easy for sharing and documentation.
  13. Responsive design system: works on phone, tablet, and desktop screen sizes.
  14. Inspired by Laws of UX, NN/g, Apple’s design principles, Linear, Raycast, Dub, and Vercel.
  15. Use blue for actions, red for danger, errors, and warnings, green for success, orange for progress.
  16. Principles explain why; code shows how.
  17. Each page should make it clear where users are, what they can do, what sections are available, and how to leave.
  18. Digital services should expand what people can do (ability) yet respect limits of attention and working memory (cognitive load).
  19. Use distinct links for navigation and buttons for actions, with clear hover, active, and focus-visible states where relevant.
  20. Minimize borders for grouping and separation. Use spacing, color, translucency, or strategically show and hide elements instead.
  21. Use subtle shadows for emphasis, raising them on hover and lowering them on press. Floating controls sit higher; disabled controls and selects stay flat. Keep keyboard focus visible.

Layout

grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4 sm:gap-5

Responsive Grid
  • 1Responsive column
  • 2Responsive column
  • 3Responsive column
  • 4Responsive column

Components

SectionSection.tsx

Recent work

View labs

A short description of this section.

Content belongs here.

Section headingSectionHeading.tsx

Default heading

Compact heading

Toolbar heading

Page headerPageHeader.tsx
Example page

A short page introduction.

New
Page titlePageTitle.tsx

Example page title

Page descriptionPageDescription.tsx

A short page introduction.

Explanation listExplanationList.tsx
  • Explain the first idea.
  • Follow with a related detail.
Flow diagramFlowDiagram.tsx
Example flow diagram
Rendering diagram…
Status pageStatusPage.tsx
BentoBento.tsx
TableTable.tsx
Example data table
NameRoleStatus
AdaEngineerActive
GraceDesignerAway
SwitchSwitch.tsx
TooltipTooltip.tsx
ModalModal.tsx

Every modal-like view, including Bento, search, and sheets, shares the ModalOverlay backdrop.

ToastToast.tsx
CheckboxCheckbox.tsx
Input: NumberNumberInput.tsx
AccordionAccordion.tsx

SelectSelectField.tsx
Toggle listToggleList.tsx
Task: FloatingFloatingTask.tsx
Creative session-12:30
Floating container shape

Navigation & Floating Task

Materials

Menu

Stand out

Floating

Translucent

ButtonsButton.tsx
Buttons: PhysicalButton.tsx
Button groupButtonGroup.tsx
1 / 3
Internal LinkInternalLink.tsx
External LinkExternalLink.tsx
Input: Text
Input: Search
BoxBox.tsx
Text Area
BreadcrumbsBreadcrumbs.tsx
BadgesBadge.tsx
GeneralSuccessDangerProgressInformation
HTTP methodsHttpMethodBadge.tsx
GETPOSTPUTPATCHDELETE
Back ButtonBackButton.tsx
LogoLogo.tsx
haritssr.com logo
Harits Syahharitssr.com
Harimaki logo
Harimakiharimaki.com
SliderSlider.tsx
Context MenusContextMenu.tsx
Right-click here
TabsTabs.tsx
Update your profile details and account preferences.
Date PickerDatePicker.tsx
ColorsColors.tsx
  • action
    blue-600/60 + blue-500/40
  • action-hover
    blue-600
  • accent
    violet-500
  • success
    green-600
  • progress
    orange-500
  • danger
    red-500
  • surface
    #fafafa
  • white
    #fff
  • surface-hover
    zinc-50
  • interface-hover
    zinc-100
  • middle-hover
    zinc-200
  • border
    zinc-300
  • border-hover
    zinc-400
  • muted
    foreground/70 + background/30
  • secondary
    zinc-600
  • secondary-hover
    zinc-700
  • foreground
    zinc-800