Skip to content
UI Kit
Accent color

Pharmacy website sections

For pharmacies. Opening hours with a live status, the emergency service by date on a drawn map, reservations for pick up, consultation dates and a travel kit checklist.

5 variants
Switch category

Open, on duty and ready for pick up

Most visits to a pharmacy website are short and urgent, is it open, who is on duty tonight, can I reserve my medicine. These sections answer at once, with a live status, the emergency service by date and a reservation that ends with a pick up code. Consultations and the travel kit bring people in for more than a prescription.

Opening hours shows whether the pharmacy is open and until when, with the week on a time axis and today marked. Emergency service lists the pharmacies on duty for a chosen date, sorted by distance with call and route, their pins on a drawn map. Reservation covers e-prescriptions, paper prescriptions and products without one, with packs, a pick up time and a code. Consultation lists topics with duration and price and books a date. Travel kit builds a checklist by kind of trip that fills a drawn bag and can be printed.

Keep the opening status at the top of every page, it is the question asked most often. Link the emergency service from the status as soon as the pharmacy closes. The reservation saves customers a second trip, mention it on the bag and at the till.

Pharmacy

Opening hoursNew in 1.2

After loading the status shows whether the pharmacy is open and until when, with a pulsing dot. The week sits on a time axis whose bars grow while scrolling, today carries a marker for the current time.

Emergency serviceNew in 1.2

Pick a date on the strip, the pharmacies on duty slide in sorted by distance with their hours, call and route. Their pins drop onto a drawn map while scrolling, the chosen one grows in the accent.

ReservationNew in 1.2

E-prescription, paper prescription or products without one, the fields swap with a soft blur. Add products with packs, pick a pick up time, the form names every missing field and ends with a pick up code.

ConsultationNew in 1.2

Topics rise in one after another with duration and price, the icon tilts on hover. Picking one swaps in what to bring, the dates and the times, booking needs a name and a phone number.

Travel kitNew in 1.2

Pick the kind of trip, the checklist rearranges by group and rises in. Every tick pops and fills the drawn bag and the bar, a full list says so in green. Print it or book a consultation.

Details

What Pharmacy brings along, read from the registry and the source.

Variants
5
Version
1.0.0 · since 1.2.0
File
components/ui/pharmacy.tsx
Brings along
utilskitbuttoniconsectionmotioninput
npm packages
None
Languages
English and German, 76 texts of its own
Studio
Adjust in code

Props

The PharmacyProps interface from components/ui/pharmacy.tsx, with the comments from the code.

  • variantoptional
    PharmacyVariant

    opening-hoursemergency-dutyreservationconsultationtravel-kit

  • eyebrowoptional
    React.ReactNode
  • titleoptional
    React.ReactNode
  • descriptionoptional
    React.ReactNode
  • hoursoptional
    PharmacyHours[]

    opening-hours

  • servicesoptional
    PharmacyService[]
  • phoneoptional
    string
  • addressoptional
    string
  • mediaoptional
    React.ReactNode

    opening-hours: a photo of the pharmacy

  • dutyHrefoptional
    string

    opening-hours: link to the emergency service

  • nowoptional
    { day: number; time: string }

    Fixed clock for previews: day 0 is Monday, time HH:MM. Without it the visitor's clock is used after loading.

  • dutyoptional
    PharmacyDutyDay[]

    emergency-duty

  • dutyFeeoptional
    number

    emergency-duty: the emergency fee

  • pickupDaysoptional
    PharmacyPickupDay[]

    reservation

  • stepsoptional
    { title: string; text?: string; icon?: IconName }[]

    reservation: steps shown next to the form

  • onReserveoptional
    (data: { kind: string; code: string; items: { name: string; qty: number }[]; day: string; time: string; name: string; phone: string; note: string }) => void
  • consultationsoptional
    PharmacyConsultation[]

    consultation

  • onBookoptional
    (data: { topic: string; date: string; time: string; name: string; phone: string }) => void
  • tripsoptional
    PharmacyTrip[]

    travel-kit

  • kitoptional
    PharmacyKitItem[]
  • adviceHrefoptional
    string
  • currencyoptional
    string

Built-in texts

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

Show all 76 texts
daysEnglish Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,SundayGerman Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag
daysShortEnglish Mon,Tue,Wed,Thu,Fri,Sat,SunGerman Mo,Di,Mi,Do,Fr,Sa,So
hoursEnglish Opening hoursGerman Öffnungszeiten
openNowEnglish Open nowGerman Jetzt geöffnet
closedNowEnglish Closed right nowGerman Gerade geschlossen
untilTimeEnglish until {time}German bis {time} Uhr
breakUntilEnglish Lunch break until {time}German Mittagspause bis {time} Uhr
opensTodayEnglish Opens today at {time}German Öffnet heute um {time} Uhr
opensTomorrowEnglish Opens tomorrow at {time}German Öffnet morgen um {time} Uhr
opensDayEnglish Opens {day} at {time}German Öffnet {day} um {time} Uhr
todayEnglish TodayGerman Heute
closedEnglish ClosedGerman Geschlossen
toEnglish toGerman bis
callEnglish Call {phone}German {phone} anrufen
dutyEnglish Find the pharmacy on dutyGerman Notdienst-Apotheke finden
dutyHintEnglish Outside our hours a pharmacy nearby is always on duty.German Außerhalb unserer Zeiten hat immer eine Apotheke in der Nähe Notdienst.
servicesEnglish In the pharmacyGerman In der Apotheke
dutyDateEnglish Date of the emergency serviceGerman Datum des Notdienstes
onDutyEnglish On dutyGerman Notdienst
nextDayEnglish next dayGerman Folgetag
kmEnglish {n} kmGerman {n} km
routeEnglish RouteGerman Route
callShortEnglish CallGerman Anrufen
youEnglish You are hereGerman Du bist hier
selectEnglish Show {name} on the mapGerman {name} auf der Karte zeigen
feeEnglish A fee of {fee} applies during emergency hours.German Im Notdienst fällt eine Gebühr von {fee} an.
noDutyEnglish No pharmacy on duty is listed for this day.German Für diesen Tag ist keine Notdienst-Apotheke eingetragen.
whatEnglish What would you like to reserve?German Was möchtest du reservieren?
ePrescriptionEnglish E-prescriptionGerman E-Rezept
ePrescriptionTextEnglish Send the code, we prepare everything.German Code schicken, wir legen alles bereit.
paperEnglish Paper prescriptionGerman Papierrezept
paperTextEnglish Bring it along when you collect.German Bring es zur Abholung mit.
otcEnglish Without prescriptionGerman Ohne Rezept
otcTextEnglish Products from the shelf or the counter.German Aus der Freiwahl oder vom Tresen.
codeEnglish Prescription codeGerman Rezeptcode
codeHintEnglish The code from your app or the printoutGerman Der Code aus der App oder vom Ausdruck
itemsEnglish ProductsGerman Produkte
itemLabelEnglish Product or active ingredient {n}German Produkt oder Wirkstoff {n}
itemPlaceholderEnglish e.g. Ibuprofen 400, 20 tabletsGerman z. B. Ibuprofen 400, 20 Tabletten
qtyEnglish PacksGerman Packungen
lessEnglish One pack lessGerman Eine Packung weniger
moreEnglish One pack moreGerman Eine Packung mehr
addItemEnglish Add a productGerman Produkt hinzufügen
removeItemEnglish Remove product {n}German Produkt {n} entfernen
pickupEnglish Pick upGerman Abholung
pickupDayEnglish DayGerman Tag
pickupTimeEnglish TimeGerman Uhrzeit
nameEnglish NameGerman Name
phoneEnglish PhoneGerman Telefon
noteEnglish Note for the teamGerman Hinweis an das Team
reserveEnglish Reserve for pick upGerman Zur Abholung reservieren
errNameEnglish Please enter your name.German Bitte gib deinen Namen an.
errPhoneEnglish Please enter a phone number so we can reach you.German Bitte gib eine Telefonnummer an, damit wir dich erreichen.
errItemEnglish Please name at least one product.German Bitte nenne mindestens ein Produkt.
errCodeEnglish Please enter the prescription code.German Bitte gib den Rezeptcode ein.
errTimeEnglish Please pick a time.German Bitte wähle eine Uhrzeit.
reservedEnglish Reserved. We call you if anything changes.German Reserviert. Wir rufen an, falls sich etwas ändert.
pickupCodeEnglish Your pick up codeGerman Dein Abholcode
pickupAtEnglish Ready {day} from {time}German Liegt bereit {day} ab {time} Uhr
againEnglish Start a new reservationGerman Neue Reservierung starten
howTitleEnglish How it worksGerman So läuft es
topicsEnglish Consultation topicsGerman Beratungsthemen
freeEnglish FreeGerman Kostenlos
minEnglish {n} minGerman {n} Min.
bringEnglish Please bringGerman Bitte mitbringen
dateEnglish DateGerman Datum
timeEnglish TimeGerman Uhrzeit
bookEnglish Book {topic}German {topic} buchen
bookedEnglish Booked for {date} at {time}. We look forward to seeing you.German Gebucht für {date} um {time} Uhr. Wir freuen uns auf dich.
newBookingEnglish Book another topicGerman Weiteres Thema buchen
tripEnglish Kind of tripGerman Art der Reise
packedEnglish {n} of {total} packedGerman {n} von {total} eingepackt
packedAllEnglish All packed. Have a good trip.German Alles eingepackt. Gute Reise.
printEnglish Print the listGerman Liste drucken
kitNoteEnglish Medicines you take regularly and vaccinations are best discussed in person.German Dauermedikamente und Impfungen besprechen wir am besten persönlich.
adviceEnglish Book a consultationGerman Beratung buchen

Accessibility

Read from the source of the component.

  • Pharmacy handles the keys Arrow up, Arrow down, Arrow left and Arrow right itself.
  • Sets aria-checked, aria-invalid, aria-label, aria-live and aria-pressed, so screen readers announce purpose and state.
  • Uses the roles alert, group, radio, radiogroup and status.
  • 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

  • Brings animations of its own, calmly timed and without wobble.
  • With reduced motion (prefers-reduced-motion) it stays still. 4 places in the code switch motion off then.

Frequent questions

How do I install Pharmacy?

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

Which variants does Pharmacy have?

5 variants, Opening hours, Emergency service, Reservation, Consultation and Travel kit. You pick one with the variant prop, for example variant="emergency-duty".

Can I translate the texts of Pharmacy?

Yes. Pharmacy carries 76 texts of its own in English and German, such as “Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday”, “Mon,Tue,Wed,Thu,Fri,Sat,Sun” and “Opening hours”. The language follows the KitProvider, single texts change through the labels prop.

Can an AI assistant build with Pharmacy?

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

Often searched

Jump to

Copied to the clipboard