Skip to content
UI Kit
Accent color

Medical practice

For doctors, clinics and therapy practices. Services by area and who pays, the team, consultation hours on a time axis, insurance and online booking.

5 variants
Switch category

Medical practice

Services

Areas on the side, a gliding filter for covered and self-pay services, prices where the patient pays.

Open in Studio

Doctors

A directory with one profile at a time, languages, focus, career and booking. On phones every doctor is a card that opens.

Open in Studio

Consultation hours

The week on a time axis by kind of consultation, bars grow in when scrolled to, a live line marks now. Filter a kind with one tap.

Open in Studio

Insurance and costs

Public, private or self-pay with a gliding switch. What to bring ticks itself off, the self-pay prices rise in next to it.

Open in Studio

Online booking

Reason, new or existing patient, insurance, a free time by doctor and the details. Each step slides in, a summary and the emergency number stay beside it.

Open in Studio

Details

What Medical practice brings along, read from the registry and the source.

Variants
5
Version
1.0.0 · since 1.1.0
File
components/ui/medical-practice.tsx
Brings along
utilskitbuttoniconinputrevealsectionmotion
npm packages
None
Languages
English and German, 67 texts of its own
In collections
Medical practice

Props

The MedicalPracticeProps interface from components/ui/medical-practice.tsx, with the comments from the code.

  • variantoptional
    MedicalPracticeVariant

    servicesdoctorsconsultation-hoursinsuranceonline-booking

  • eyebrowoptional
    React.ReactNode
  • titleoptional
    React.ReactNode
  • descriptionoptional
    React.ReactNode
  • servicesoptional
    MedicalService[]

    services, insurance: the services, self-pay ones with price

  • doctorsoptional
    MedicalDoctor[]
  • hoursoptional
    MedicalHours[]

    consultation-hours

  • kindsoptional
    MedicalHourKind[]
  • noticesoptional
    { icon?: IconName; title: string; text: string }[]

    consultation-hours: emergency numbers and closures, one line each

  • nowoptional
    { day: number; time: string }

    consultation-hours: the time to measure against. Defaults to the browser clock.

  • insuranceTypesoptional
    MedicalInsuranceType[]

    insurance

  • helpoptional
    { title: string; text: string; action?: { label: string; href: string; icon?: IconName } }

    services, insurance: a question card with one way to ask it

  • reasonsoptional
    MedicalReason[]

    online-booking

  • slotsoptional
    MedicalSlotDay[]
  • currencyoptional
    string
  • onBookoptional
    (data: Record<string, string>) => void

Built-in texts

Medical practice writes these texts itself. The language follows the KitProvider, the labels prop replaces single ones.

Show all 67 texts
allEnglish AllGerman Alle
toEnglish toGerman bis
statutoryEnglish Covered by insuranceGerman Kassenleistung
selfPayEnglish Self-payGerman Selbstzahler
filterEnglish Show servicesGerman Leistungen zeigen
groupsEnglish AreasGerman Bereiche
minEnglish about {n} minGerman ca. {n} Min.
noServicesEnglish No services in this area for this filter.German Für diesen Filter gibt es in diesem Bereich keine Leistungen.
languagesEnglish LanguagesGerman Sprachen
focusEnglish FocusGerman Schwerpunkte
careerEnglish CareerGerman Werdegang
inPracticeEnglish In the practiceGerman In der Praxis
bookWithEnglish Book with {name}German Termin bei {name}
teamEnglish DoctorsGerman Ärztinnen und Ärzte
daysEnglish Mon,Tue,Wed,Thu,Fri,Sat,SunGerman Mo,Di,Mi,Do,Fr,Sa,So
daysLongEnglish Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,SundayGerman Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag
openNowEnglish Open nowGerman Jetzt geöffnet
untilEnglish {kind} until {time}German {kind} bis {time} Uhr
closedNowEnglish Closed right nowGerman Gerade geschlossen
opensAtEnglish Opens {day} at {time}German Wieder geöffnet {day} ab {time} Uhr
todayEnglish TodayGerman Heute
closedEnglish ClosedGerman Geschlossen
kindsEnglish Kind of consultationGerman Art der Sprechstunde
hoursTableEnglish Consultation hours by dayGerman Sprechzeiten nach Tagen
emergencyEnglish Outside these hoursGerman Außerhalb der Sprechzeiten
insuranceEnglish InsuranceGerman Versicherung
bringEnglish Please bringGerman Bitte mitbringen
billingEnglish How we billGerman So rechnen wir ab
pricesEnglish Self-pay servicesGerman Selbstzahlerleistungen
fromEnglish fromGerman ab
stepEnglish Step {n} of {total}German Schritt {n} von {total}
stepReasonEnglish ReasonGerman Anlass
stepPatientEnglish About youGerman Zu Ihnen
stepTimeEnglish TimeGerman Uhrzeit
stepDetailsEnglish DetailsGerman Angaben
reasonQEnglish Why would you like to come?German Weshalb möchten Sie kommen?
patientQEnglish Have you been here before?German Waren Sie schon einmal bei uns?
existingEnglish Yes, I am a patientGerman Ja, ich bin Patient
newPatientEnglish No, my first visitGerman Nein, zum ersten Mal
insuranceQEnglish How are you insured?German Wie sind Sie versichert?
timeQEnglish Pick a timeGerman Uhrzeit wählen
anyDoctorEnglish Any doctorGerman Alle Ärzte
noSlotsEnglish No free times on this day. Please pick another day.German An diesem Tag ist nichts mehr frei. Bitte wählen Sie einen anderen Tag.
nameEnglish Full nameGerman Vor- und Nachname
birthEnglish Date of birthGerman Geburtsdatum
phoneEnglish PhoneGerman Telefon
emailEnglish EmailGerman E-Mail
optionalEnglish optionalGerman optional
requiredEnglish Please fill in this field.German Bitte füllen Sie dieses Feld aus.
invalidEmailEnglish Please enter a valid email address.German Bitte geben Sie eine gültige E-Mail-Adresse ein.
backEnglish BackGerman Zurück
nextEnglish ContinueGerman Weiter
bookEnglish Book appointmentGerman Termin verbindlich buchen
bookedEnglish Your appointment is bookedGerman Ihr Termin ist gebucht
bookedTextEnglish We have sent the confirmation to you. Please come five minutes early and bring your insurance card.German Die Bestätigung ist unterwegs zu Ihnen. Bitte kommen Sie fünf Minuten früher und bringen Sie Ihre Versichertenkarte mit.
againEnglish Book another appointmentGerman Weiteren Termin buchen
calendarEnglish Add to calendarGerman In den Kalender
summaryEnglish Your appointmentGerman Ihr Termin
nothingEnglish Nothing picked yetGerman Noch nichts gewählt
acuteEnglish In an emergency call 112German Im Notfall die 112 wählen
noAppointmentEnglish No appointment neededGerman Ohne Termin möglich
notThisDayEnglish Not on this dayGerman An diesem Tag nicht
newShortEnglish New patientGerman Neu in der Praxis
existingShortEnglish Existing patientGerman Bereits Patient
acuteTextEnglish Chest pain, shortness of breath or signs of a stroke never wait for an appointment.German Brustschmerz, Atemnot oder Zeichen eines Schlaganfalls warten nie auf einen Termin.
newHintEnglish First visit, please plan 15 minutes for the questionnaire.German Erster Besuch, bitte planen Sie 15 Minuten für den Anamnesebogen ein.
withEnglish with {name}German bei {name}

Accessibility

Read from the source of the component.

  • Medical practice handles the keys Arrow up, Arrow down, Arrow left, Arrow right and Space itself.
  • Sets aria-checked, aria-controls, aria-current, aria-expanded, aria-label, aria-labelledby, aria-live, aria-orientation, aria-pressed and aria-selected, so screen readers announce purpose and state.
  • Uses the roles group, radio, radiogroup, status, tab, tablist and tabpanel.
  • Announces changes through a live region without moving focus.
  • Every field has a label, visible or for screen readers.
  • Adds text for screen readers where icons and graphics stand alone.
  • Shows a visible focus ring when used with the keyboard.
  • The server renders the starting state in full, JavaScript only adds the interaction.

Motion

  • Rises in briefly the first time it comes into view (kit-rise, useInView).
  • Moves with the scroll, its progress follows the position on the page.
  • Brings animations of its own, calmly timed and without wobble.
  • With reduced motion (prefers-reduced-motion) it stays still. 6 places in the code switch motion off then.

Frequent questions

How do I install Medical practice?

With aiw add @ai-website/medical-practice. The command puts components/ui/medical-practice.tsx into your project, the code is yours from then on. It brings along button, icon, input, reveal, section and motion. It needs no further npm packages.

Which variants does Medical practice have?

5 variants, Services, Doctors, Consultation hours, Insurance and costs and Online booking. You pick one with the variant prop, for example variant="doctors".

Can I translate the texts of Medical practice?

Yes. Medical practice carries 67 texts of its own in English and German, such as “All”, “to” and “Covered by insurance”. The language follows the KitProvider, single texts change through the labels prop.

Can an AI assistant build with Medical practice?

Yes. Through the MCP server of the aiw CLI, Claude, Cursor, GitHub Copilot, Windsurf, Codex and Gemini find Medical practice with aiw_components and install it with aiw_add @ai-website/medical-practice. Name the variant in your prompt, for example variant="services", and the assistant writes your content straight into the props.

Can I adjust Medical practice without code?

Yes, in the Studio. All 5 variants are editable there, texts, lists and switches. The Studio writes the matching MedicalPractice code to copy.

Often searched

Jump to

Copied to the clipboard