🎨 Polish
Three radial gradients on `.ml-app` removed, background now transparent so the body gradient shines through uniformly everywhere
The `radial-gradient(75% 70% at 0% 0%, bg-tint-strong)` created a strong teal hotspot in the top-left of the email shell, making the area around the "Inbox" look like a separate green-tinted box while the rest stayed darker.
🎨 Polish
.taskio-card buitenste container krijgt background: transparent en box-shadow: none, sub-elementen blijven gekleurd
De buitenste widget-shell .taskio-card had nog een inset highlight rgba(255, 255, 255, 0.04) + drop-shadow die samen een vlak-illusie gaven, terwijl de gebruiker een volledig transparante container wilde. Wel moeten sub-elementen (deadline-vakjes met gekleurde glow, quick-action items met var(--bg-mid)) hun eigen achtergrondkleur behouden.
🎨 Polish
Donut-cijfer leunde tegen de boog-uiteindjes
Donut iets vergroot (130×75 i.p.v. 110×62), cijfer iets compacter (16 px i.p.v. 18 px) en verder van de bodem gepositioneerd (8 px i.p.v. 4 px). Status-card kolom navenant verbreed naar 130 px zodat de donut past.
🎨 Polish
.taskio-card achtergrond is nu transparent in dark mode
Zelfs de subtiele rgba(255, 255, 255, 0.025) glas-laag uit v7.33 voelde nog te aanwezig op de donkere portal-bg. Gebruiker wilde de achtergrondkleur er helemaal uit.
🎨 Polish
border-right op .ml-folders en .ml-threads gebruikt nu rgba hairline ipv solide #262c34
De kolom-scheidingslijnen waren een solide donker grijs-blauw (#262c34 = --mlnx-border) die zichtbaar als donkere verticale lijnen tussen sidebar/thread-lijst/reader zichtbaar waren. Visueel deed het lijken alsof de middelste kolom een andere achtergrond had.
🎨 Polish
Alle .taskio-card widgets (Maandwinst, Laatste activiteit, Snelle acties, Aankomende deadlines) krijgen nu dezelfde subtiele wit-glas laag als de Kalender-shell
De dashboard widgets waren in dark mode bijna pikzwart door een 4-laagse radial-gradient (var(--bg-tint-strong) + var(--bg-tint) + var(--bg-tint-soft) op var(--bg-elev)). Resultaat: vrijwel onzichtbare cards op de donkere portal-bg. De Kalender-pagina ("Bekijk agenda van — Social Media Tools") had daarentegen een veel lichtere, transparant-witte glas-laag die mooi door de portal-bg heen scheen.
🎨 Polish
Status-card naast voortgangsbalk uitgelijnd in hoogte
Sinds de hero op align-items: start stond, was de status-card rechts (met halve donut) langer dan de voortgangsbalk links — onevenwichtig.
🎨 Polish
box-shadow en border op .ml-app verwijderd zodat geen donkere lijnen meer rond de e-mail-shell verschijnen
De .ml-app shell had box-shadow: 0 8px 24px -12px rgba(0,0,0,0.5) en border: 1px solid rgba(255,255,255,0.06) — gaf zichtbare donkere randen aan elke kant van de e-mail-sectie, alsof het paneel naar voren werd geduwd.
🐛 Bug fix
Search-bar wrapper had panel-soft achtergrond + #262c34 border in dark mode
.ml-threads-search wrapper had background rgba(255,255,255,0.04) + border #262c34. Resultaat: zwarte rechthoek-look bovenop de teal-glas shell.
🎨 Polish
Hero van 3 naar 2 kolommen, progress-blok niet meer naar onderen gepusht
Na het verwijderen van de raket-illustratie bleef de hero-grid in 3 kolommen (1fr 280px 280px) staan — daardoor zat er een leeg gat tussen de voortgangsbalk en de "Waar sta je nu?"-card. Plus de progress-wrap werd via margin-top: auto naar de onderkant van een uitgerekte hero-kolom geduwd, waardoor er witruimte boven het blok ontstond.
🎨 Polish
Drie decoratieve blokken verwijderd voor een schonere onboarding-pagina
De raket-SVG in de hero, de "Snel aan de slag"-quick-list (Bekijk onboarding video / Download mobile app / Helpdesk-link) in de rechter sidebar, en de "Pro tip"-card met "Meer tips bekijken"-knop zijn weg. Hero is nu compacter; rechter sidebar bevat alleen nog "Hulp nodig?" en "Wat is nieuw?".
🎨 Polish
"Launchpad" h1 en intro-zin verwijderd
De "Launchpad"-titel met info-icoon en de regel "Jouw persoonlijke setup voor een succesvolle start" zijn weg. De hero begint nu direct met de voortgangsbalk; categorieën verschijnen meteen daaronder.
🐛 Bug fix
Per ongeluk verwijderde .ml-app teal-radial-gradient achtergrond hersteld
Commit 20d9aaf draaide v7.21 terug: de drie radial-gradients (bg-tint-strong/tint/soft) op var(--bg-elev) basis die de e-mail-shell zijn karakteristieke donker-teal wash gaven, werden verwijderd. E-mail dark mode oogde daardoor te plat en zonder die premium glas-look die op Meetings wel zichtbaar is.
🎨 Polish
Geen brede witruimte meer boven en naast de Launchpad-content
De Launchpad had padding: 80px 20px 120px en max-width: 1320px met centrering — dat gaf veel witruimte aan de bovenkant en links/rechts. De Meetings-pagina staat juist edge-tot-edge tegen de header en zijkant.
🎨 Polish
Card-shell rond e-mail-shell weer weggehaald
De .ml-app radial-tint-laag die in v7.21 werd toegevoegd om de Meetings-look te imiteren is verwijderd. Dark mode keert terug naar de configuratie van v7.17: panels transparent, body-gradient schemerend, geen extra teal-wash binnen een afgeronde shell.
🎨 Polish
Launchpad-pagina volledig herontworpen volgens de premium SaaS-mockup van de gebruiker
De Launchpad was een 2-koloms layout met alleen categorieën + takenlijst. Geen visueel anker, geen contextuele hulp, geen onboarding-cues. De pagina voelde leeg en functioneel ipv premium.
🎨 Polish
Wit-glas overlay vervangen door de teal-tinted multi-radial-gradient die .ml-app ook gebruikt
v7.20 (wit-alpha overlay) voelde anders aan dan de E-mail-pagina die een specifieke radial-gradient teal-tinted shell heeft.
🎨 Polish
Subtle teal-wash vervangen door volwaardige donker-teal radial-tint
In dark mode had de e-mail-shell een nauwelijks zichtbare teal-tint (rgba 0.05). De gebruiker wilde de duidelijke donker-groene tint die op /meetings zichtbaar is — die komt daar van de body-radials maar werd op de e-mail-pagina niet doorgegeven.
🎨 Polish
Teal-tint vervangen door wit-tint en alpha verdubbeld voor lichtere widget-look
v7.19 had subtiele teal-tint (3.5% -> 0.8%) wat het oog zag als te donker en niet light genoeg. Gebruiker wilde de transparante achtergrond veel lichter.
🎨 Polish
Solide donkere base layer onder de teal-tint weggehaald — body-gradient schijnt nu volledig door
v7.16 had nog rgba(11,14,20,0.6) als solid base onder de teal-tint, waardoor de widgets nog steeds donker en relatief opaque oogden.
🎨 Polish
E-mail-shell krijgt nu dezelfde card-look als de Meetings-kalender in dark mode
In dark mode liepen de drie e-mail-kolommen wel netjes door in de body, maar er was geen visuele card-omsluiting met ronde hoeken zoals op /meetings — daar staat het kalender-grid duidelijk in een teal-getinte wrapper met afgeronde hoeken.
🐛 Bug fix
E-mail-kolommen blokten de body-achtergrond in dark mode
In de vorige fix kregen alle drie de e-mail-kolommen een effen achtergrond (#070a0f). Dat dekte de body-gradient af — geen teal/violet tinten meer zichtbaar door de e-mail-pagina heen. Op andere pagina's zoals Meetings komt die wash juist wél door.
🎨 Polish
Glassmorphism overlay gebruikt nu teal-brand-kleur i.p.v. neutraal wit alpha
v7.15 gebruikte rgba(255,255,255) overlays wat een neutraal-wit washed-out gevoel gaf. Past niet bij de brand-stijl van het portaal — de Content-kalender heeft een veel meer teal-getinte donkere achtergrond.
🎨 Polish
Taskio-card widgets krijgen in dark mode dezelfde glasachtige transparantie als de Content-kalender
In dark mode hadden de dashboard-widgets een vrij solid donkere achtergrond (var(--bg-elev)) terwijl elders op de site (zoals de Content-kalender) een glasachtige transparante stijl zit waardoor de body-gradient subtiel doorschijnt. Inconsistente diepte-look.
🐛 Bug fix
Linker- en middenpaneel hadden in dark mode nog een lichter tintje dan body
De vorige fix maakte de e-mail-reader gelijk aan body, maar de sidebar en threadslijst (--mlnx-panel) waren nog #11161e — een tintje lichter dan body. Daardoor was de overgang van body naar die kolommen alsnog zichtbaar.
🎨 Polish
Settings-zijbalk en content-area krijgen card-styling met afgeronde hoeken en consistente witruimte
.meet-settings layout had geen horizontale padding, waardoor de zijbalk plat tegen de linkerrand plakte zonder ronde hoeken aan top-left en bottom-left. Inconsistent met de Kalender-tab die wel 20px padding heeft en card-styling op zijn elementen.
🎨 Polish
De paarse glow rechtsonder kwam uit .app-shell-main — vervangen door huisstijl-accent
Na v7.09 (portal-page-bg paarse aura's naar accent) bleef er een paars-roze gloed rechtsonder zichtbaar in dark mode op alle dashboard-pagina's (Launchpad, etc.). Bron: .app-shell-main op regel 59134 had een hardcoded rgba(139, 92, 246, 0.18) ellipse op positie 82% 82% — precies waar de chat-widget zit. Lichtmode-variant op regel 59144 had rgba(139, 92, 246, 0.04). Beide overleefden de v7.09-pass omdat ze in een andere selector dan tbv-page--portal zaten.
🐛 Bug fix
leftSidebarOpen/rightSidebarOpen worden nu atomisch uit localStorage geïnitialiseerd i.p.v. via een aparte read-effect
Bij tab-switch terug naar Meetings kwamen de linker en rechter zijbalken vaak weer terug, zelfs als de gebruiker ze net had dichtgeklapt. Oorzaak: useState(false) + read-effect was vatbaar voor een race — bij first render dropte de write-effect (state via closure = false) "closed" terug in localStorage VOORDAT de read-effect z'n setLeftSidebarOpen(true) propageerde. Bij een snelle remount-cyclus (auto-refresh visibility-handler) eindigde dat met een verkeerd-gepersisteerde of opnieuw-uitgelezen "open" voorkeur ondanks dat de gebruiker net had dichtgeklapt.
🐛 Bug fix
Links naast de e-mail-shell zat in dark mode een harde lijn met de body
In dark mode was de e-mail-pagina-achtergrond #0d1117 terwijl de body #070a0f gebruikte — 6 helderheids-eenheden verschil. Dat gaf links en rechts van de e-mail-shell een zichtbare overgang alsof de achtergrond ophield. In light mode liep het wél door omdat body daar pure wit is en de e-mail-tegels nauwelijks afwijken.
🎨 Polish
Hardcoded violet radial-gradients in de pagina-achtergrond gebruiken nu var(--accent) zodat ze de ingestelde brand-kleur volgen
De Launchpad-pagina (en alle andere portal-pagina's die .tbv-page--portal gebruiken) toonden een paars-roze gloed rechtsboven die uit de toon viel bij een teal/groene huisstijl. Op vier plekken in globals.css stond rgba(139, 92, 246, 0.22) hardcoded in dark mode + rgba(167, 139, 250, 0.28) in light mode — beide violet/lavender — als achtergrond-aura. De Launchpad eigen orbs gebruikten al var(--accent), maar de page-bg daaronder dus niet.
🎨 Polish
Kalender krijgt standaard de volledige ruimte; je voorkeur wordt onthouden
De twee zijbalken op /meetings (links: mini-kalender + agenda-filters, rechts: deze-week stats + up next) stonden altijd open. Op kleinere schermen of voor wie de kalender wil zien, is dat te druk.
🎨 Polish
Title-fontweight van 700 naar 600
De "Postvak IN" header en de subject-titel van een geopende mail zijn een tintje slanker gemaakt (bold → semibold). Voelt eleganter en past beter bij de premium look.
🎨 Polish
Safari/WebKit-default border rond de "Zoek campagnes..."-input verwijderd
Het zoekveld bovenaan de campagnes-pagina had een dubbele border: de wrapper had de stijl-border, en de browser tekende daarnaast nog een eigen ronde border rond de <input type="search"> zelf (Safari/Chrome default voor search-inputs).
🎨 Polish
Compactere kop op /email/campagnes
De "E-mail campagnes"-titel met envelope-icoon en de intro-zin ("Stuur klanten maandelijkse updates, nieuwsbrieven of aankondigingen met templates") zijn verwijderd. De breadcrumb "E-mail › Campagnes" blijft staan en geeft genoeg context; de pagina opent nu directer met de KPI-tegels.
✨ New feature
Nieuwe BookingCalendarSync-table + cancelBookingExternalSyncs helper — booking-cancel reikt nu tot in alle gekoppelde agenda's van de host
Bij booking-create syncede Senly het event naar alle gekoppelde agenda's (Google/Outlook/Apple), maar de externe externalIds werden nergens vastgelegd. Bij cancel — via host DELETE, host PATCH→cancelled óf attendee self-service token — werd alleen de DB-status op CANCELLED gezet plus een cancellation-mail verstuurd. De gesyncede kopieën in de iPhone Apple Calendar, Google Calendar, etc. bleven staan en moesten handmatig opgeruimd worden.
🎨 Polish
Placeholder-sparklines en niet-werkende AI-suggesties uit de campagnes-pagina
Op de campagnes-pagina stonden nog drie placeholder-elementen: de verzonnen sparklines achter de 4 KPI's, een "Optimaliseer onderwerpregels"-card met een dode knop, en een "Beste verzendtijd — Donderdag 10:00"-card die uit de losse pols gehaald was.
🐛 Bug fix
filteredBookings filtert nu status === "cancelled" weg — tile valt direct uit het week/dag/maand grid
Bij klik op "Annuleer boeking" werd de booking in de DB op CANCELLED gezet en kreeg de attendee netjes een cancellation-mail, maar het tile bleef vrolijk in de kalender hangen. Status badge in het popover toonde wel "CANCELLED", maar de visuele booking was nog steeds zichtbaar op zijn oorspronkelijke tijdslot. Andere code-paden in dezelfde file (Vandaag-strip, Up Next, MonthGrid telling) filterden cancelled wel weg, alleen de hoofd-render via filteredBookings → MonthGrid/WeekGrid/DayGrid niet.
✨ New feature
Echte open- en click-tracking voor verzonden campagnes
De KPI-tegels en per-campagne statistieken op /email/campagnes waren placeholders. Je wist nooit hoeveel mensen je mail écht openden of doorklikten — alleen hoeveel mails er waren afgeleverd.
✨ New feature
Inactieve abonnees-KPI + werkende "Start re-engagement"-knop
De vierde KPI was "Omzet gegenereerd" — verzonnen data. En de "Start re-engagement"-knop in AI Suggesties deed niets.
🎨 Polish
De annuleer-knop in het booking-popover is nu een volle destructive button i.p.v. piepkleine ghost-tekst rechtsonder
De "Annuleer boeking"-knop stond als 12px grijze text-only knop helemaal rechtsonder in de footer — vrijwel onzichtbaar. Gebruikers vonden de delete-actie niet en gingen via hun iPhone Apple-agenda het event verwijderen, maar dat haalde alleen de sync-kopie weg; de Senly source bleef staan en het event verscheen opnieuw in de kalender. Plus: de oude knop gebruikte een browser-confirm() popup, lelijk en out-of-style.
🐛 Bug fix
Floating action button rechtsonder op de Trends-pagina verwijderd
Op de Trends-pagina stond een teal FAB op fixed bottom: 24px right: 24px die conflicteerde met de chat-widget op dezelfde positie. Gaf een lelijke dubbele-cirkel look. Daarbij deed de FAB nog niets (placeholder voor toekomstige AI-assistent).
🐛 Bug fix
Globale a-tag CSS overschreef de witte tekstkleur op de Open meeting link knop
In BookingDetailPanel was de knop een <a> met meet-btn-primary class. Globaal a:hover { color: var(--text) } heeft specificiteit 0,1,1 > .meet-btn-primary (0,1,0). Resultaat: tekst alleen zichtbaar bij hover.
✨ New feature
Externe agenda-wijzigingen verschijnen nu vanzelf in de kalender zonder te navigeren
Als de gebruiker een event verwijderde via zijn iPhone/Apple Calendar, bleef het oude event in Senly staan tot hij naar een andere pagina navigeerde en terugkwam — soms minuten lang. Oorzaak: useEffect(() => load(), []) draaide alleen bij mount, geen polling en geen window-focus listener. De localStorage-cache van 2 min liep wel af maar zonder trigger gebeurde er niets.
🎨 Polish
Geen-verbinding pagina krijgt elegante centered card met auto-retry indicator
Offline-pagina was plat: generic icoon, basic typografie, plain teal knop op donkere achtergrond.
✨ New feature
Nieuwe "Verwijder uit agenda"-knop in het externe-event-popover met confirm-flow + provider-sync
Bij klik op een Google/Outlook/Apple-event in de meetings-kalender opende een read-only popover met enkel een tekstje "Dit event komt uit je gekoppelde X-agenda en kan alleen daar bewerkt worden." De gebruiker moest naar de externe agenda-app om iets te verwijderen — onnodig, want de provider-delete-functies (deleteGoogleEvent / deleteOutlookEvent / deleteAppleEvent) bestonden al voor onze eigen booking-cancel flow.
🎨 Polish
/email/campagnes is van simpele kaartenlijst naar volwaardig dashboard
De campagnes-pagina was een afgeslankte kaartenlijst zonder overzicht: geen KPI's, geen filter, geen paginatie, geen statistieken per campagne. Vergeleken met de rest van het portaal voelde 't zwak en lui.
🎨 Polish
"E-mail gebruik" widget (2,4 GB / 10 GB / 24%) onderaan de email-sidebar verwijderd
Widget toonde hardcoded statische waardes 2,4 GB / 10 GB / 24% met als comment "placeholder, echte byte-meting komt later". Misleidende UI — gebruiker dacht dat dit echte data was.
✨ New feature
Twee toggle-knoppen op de toolbar — klap de hele linker of rechter zijbalk in voor meer kalender-ruimte
Twee nieuwe leftSidebarOpen + rightSidebarOpen states. .meet-cal-layout krijgt no-left en no-right modifier classes die grid-template-columns naar 0 1fr X of X 1fr 0 zetten. Smooth transition 320ms cubic-bezier(0.16, 1, 0.3, 1) op de grid-columns geeft een vloeiende slide-animatie. Inhoud van de sidebar fade-out + translateX 12px voor extra polish. Toggle-knoppen in de toolbar (links en rechts) met SVG icoon dat 180deg rotateert om de state te tonen. Beide sidebars staan default open zodat niets verandert voor bestaande gebruikers — kunnen op verzoek wegklikken voor maximale focus op de kalender. Mobile (max-width 900px) blijft full-width met sidebars verborgen.
🎨 Polish
Event-titels in week/dag-view terug naar weight 600 voor betere leesbaarheid
Vorige iteratie had de titels naar weight 500 gezet, wat in de kleine event-blokken te dun was om vlot te scannen. Terug naar weight 600 — middenweg tussen "drukke 700" en "te dun 500". Toegepast op week-bk, week-ext, day-bk, day-ext.
🎨 Polish
Meeting-titels in Up next en kalender-namen in Verdeling deze week zijn nu dunner
.meet-upnext-info strong (Niura analysegesprek, Met mama mee naar het ziekenhuis, etc.) van font-weight 700 -> 500. .meet-dist-name (Gezinsagenda, Werk, Agenda) van 600 -> 500. Consistent met de stat-nummers en event-titels die ook 500 zijn.
🎨 Polish
Stat-nummers (11, 19u 40m, 39%, 1u 47m) 28px/600 -> 22px/500. Event-titels 600 -> 500.
Display-typografie van 28px/font-weight 600 verlaagd naar 22px/font-weight 500 voor de 4 stat-cards. Letter-spacing iets minder agressief (-0.025em ipv -0.035em). Event-blok titels (week-bk, week-ext, day-bk, day-ext) ook 600 -> 500. Resultaat: rustiger en eleganter, minder schreeuwerige cijfers en titels.
🎨 Polish
Cards en event-blokken hebben nu uniforme achtergrond i.p.v. subtiele gradients
Vorige polish-ronde voegde subtiele 180deg gradients toe aan alle cards + 105deg diagonale gradient op event-blokken. Bij elkaar maakte dat de pagina visueel drukker i.p.v. eleganter — te veel beweging in het oog.
🎨 Polish
Alle cards, knoppen en numeriek typografie verfijnd naar high-end UI standaard
Cards en buttons voelden web-default aan met enkele 1px borders en simpele shadows. Numerieke typografie (11, 39%, 19u 40m) was te dik en zonder tabular nums. Geen subtiele gradients, geen multi-layer depth.
🐛 Bug fix
Twee functies waren tijdens de visuele redesign uit de sidebar gehaald
In iteratie 2 had ik de Spam-folder en de "Accounts beheren"-link verwijderd omdat ze niet op de mockup stonden — maar je had ze nodig om ongewenste mail te bekijken en om nieuwe Gmail/IMAP-inboxen toe te voegen.
🐛 Bug fix
Mass-mailing campagnes waren niet meer bereikbaar vanuit de mail-pagina
Bij de visuele redesign was de Campagnes-link uit de sidebar verwijderd, en als gevolg was de mass-mailing-pagina (/email/campagnes) alleen nog te bereiken via een directe URL.
🐛 Bug fix
Bij klikken van "Alle" verschenen soms de gevlagde mails uit "Met ster"
De fetch voor de vorige filter (bv. Met ster) kon ná de fetch voor je nieuwe filter ("Alle") binnenkomen en de resultaten overschrijven — visueel "glitchte" je dan terug naar gevlagde mails terwijl Alle actief was.
⚡ Performance
Geen 30-seconden "wachten op Gmail" meer tussen twee verwijderingen
De actie-knoppen werden disabled tot de Gmail/IMAP-call klaar was. Bij een trage Gmail-antwoord kon het 30 seconden duren voor je weer kon verwijderen, ook al was de volgende mail al geopend.
⚡ Performance
Optimistische UI bij verwijderen / archiveren / spam-markeren
Bij klikken op het prullenbakje wachtte je tot de Gmail/IMAP-call klaar was voor de mail uit de lijst verdween — plus een bevestigings-popup. Voelde lui en je bleef met een leeg lezer-paneel zitten.
🐛 Bug fix
Klikken op het prullenbakje deed niets bij Gmail-inboxen
De move-endpoint accepteerde alleen IMAP-accounts. Voor Gmail-accounts (zoals zakelijk@socialmediatools…) gaf de server een 400 "Alleen IMAP-accounts ondersteund" terug — visueel leek het alsof het prullenbakje stuk was, en hetzelfde gold voor archiveren en als-spam-markeren.
🐛 Bug fix
Sidebar en lezer hadden nog rechte hoeken in plaats van de afgeronde 18 px
Een oudere .ml-app-regel zette padding: 0 20px op de grid-shell. Mijn override zei daar niets over en de oude padding overleefde — daardoor stonden de panels strak binnen een afgerond kader, met zichtbaar rechte hoeken in plaats van mee-afgeronde.
🎨 Polish
Geen losse grijze rand meer rond de mail-app
De 3-koloms mail-shell had een border van 1 px rond het geheel — die maakte een tweede lijn buiten de witte panels en gaf een opvulling waar je 16e niet wilde.
🎨 Polish
Mail-shell stond te strak tegen de bovenkant van de pagina
De 3-koloms mail-shell had een negatieve top-margin (-8 px) zodat 'ie direct tegen de top-rand van het hoofdpaneel stond — Meetings en andere tabs hebben juist visuele ademruimte rondom de content.
🎨 Polish
Subject-rij, sender-strip en mail-content card in lijn met de mockup
In het rechter mail-paneel was de subject één losse h1, en de mail-inhoud landde als platte tekst onder een grijze regel — geen scheiding, geen ademruimte, geen "lux" gevoel.
🎨 Polish
Event-blokken voelen nu high-end aan — zachte floating shadow, glowing accent-strip, smoothere transitions
Hard 1px border + plat hover-effect maakten de blokken goedkoop ogen — meer web-app default dan premium calendar.
🐛 Bug fix
De Categorieën-card werd bij scroll bovenaan afgekapt — sticky top was 20px terwijl de portal-topbar ~80px hoog is
Bij scroll viel een kwart van de "Categorieën" sidebar-card weg achter de topbar — alleen de items waren zichtbaar, de titel niet meer.
🎨 Polish
AI Samenvatting verplaatst van 5e KPI-card naar donkere sidebar-card met live-pulse indicator
De "The Future of Social Media 2026"-card in de sidebar was een statische promo waarvan de "Download rapport"-button geen onClick had — klikte je erop, gebeurde er niks. Tegelijkertijd zat de AI-samenvatting als 5e KPI in een rij die daardoor te druk en breed werd.
🎨 Polish
Gradient gaat nu van 10% kleur bij de strip naar 1% bij 60% en helemaal transparant aan de rechterkant
Vorige gradient (22% naar 4%) was nog te dominant — kleuren overheersten de tekst en het overzicht.
🎨 Polish
Up next, Verdeling deze week en Deze week krijgen dezelfde kop-stijl als Kalenders / Mijn agenda's
Inconsistente kop-typografie in de sidebar: Kalenders/Mijn agenda's waren uppercase 11px letter-spaced (label-stijl) terwijl Up next / Verdeling deze week / Deze week 14-16px regular case (title-stijl) waren.
🎨 Polish
Event-blokken hebben nu een linear-gradient achtergrond i.p.v. uniforme tint
De achtergrond was overal gelijk getint (12% kleur), wat te fel/zwaar voelde. Mockup-vibe wilde subtieler en gericht: feller bij de kleur-strip links, lichter naar rechts.
🎨 Polish
Alle drukke kleur-tiles, paarse cards, gekleurde icon-vlakjes en 3D-renders verwijderd ten gunste van monochroom editorial design
De pagina voelde druk, kinderachtig en goedkoop aan met cartoony 3D-floating tiles op blog-cards, gekleurde icon-vlakjes (blauw/mint/roze/paars) op KPI-cards, een fel-paarse AI-samenvatting card, een paars-violette featured rapport-banner, en volle gekleurde pill-tags. Niets daarvan zou je verwachten op een echt premium SaaS-product.
🎨 Polish
Vandaag-knop + datum-label + view-toggles + Nieuwe-meeting knop staan nu in een eigen witte card, los van de kalender-grid eronder
De toolbar en de week/dag/maand-grid zaten samen in één witte card met alleen een border-bottom als scheiding. Voelde plakkerig en niet zoals het mockup waar ze visueel apart staan.
🎨 Polish
Content Strategie, Algoritmes, Tools & Tips en Advertising krijgen elk een eigen gekleurde brand-style tile
De Categorieën-sidebar gebruikte een mix van platform-brand-logo's (mooi gekleurd) en losse emoji's (🎯 📊 🛠 📢). Stijlbreuk: emoji's zien er flat en OS-afhankelijk uit naast de strakke SVG-platform-logo's.
🎨 Polish
Aparte logo-upload op Meetings → Instellingen → Branding verwijderd
Twee plekken om hetzelfde logo in te stellen: de centrale Huisstijl-pagina (waar ook favicon staat) en een aparte per-booking-page override in Meetings → Branding. Verwarrend en redundant. Bovendien wilde gebruiker single source of truth voor logo+favicon.
🐛 Bug fix
Host-card schoof omlaag bij de form-stap doordat de rechterkant langer werd
.bp-host-card had margin-top: auto wat het flexbox naar de absolute onderkant duwde. Bij de form-stap (Naam/E-mail/Bedrijf/Telefoon/Toelichting fields) wordt het rechterpaneel veel langer, de shell rekt mee, en het host-blok zakte mee naar beneden zodat het pas onder de fold zichtbaar was. Visueel oneerlijk: host "schoof" tussen stappen.
🎨 Polish
Footer-tekst toont bedrijfsnaam (Tenant.name) i.p.v. portalName
Footer op /boek/[user] en /boek/[user]/[slug] gebruikte data.branding.portalName ("Bedrijfsportaal"), maar bureaus willen hun eigen naam zien (bv. "Studio X Marketing").
🎨 Polish
Elke rij toont nu een floating brand-tile of GenericContentIcon — geen lege pastel-vakjes meer
De 44px thumb links van elke rij was alleen een platte pastel-vlakje met een puntje "•" (bij algemeen) of klein flat platform-icoontje. Saai, en bij algemene rijen ontbrak elk visueel anker.
🎨 Polish
Browser-default border/focus styling op de tijdzone <select> verwijderd
In de tijdzone-pill (Europe/Amsterdam) was een grijze rechthoek rond de tekst zichtbaar — browser-default focus border van het <select> element kwam door mijn appearance:none reset heen.
🐛 Bug fix
De datum-picker op /boek/[user]/[slug] toonde maar 3 kolommen i.p.v. 7, dagen wrapten over meerdere rijen
In BookingPage.tsx werd .bp-cal-grid gebruikt voor twee verschillende grids: de datum-picker (7 kolommen voor weekdagen) EN de "Toevoegen aan agenda" knoppen op de success-screen (3 kolommen voor Google/Outlook/Apple). Door CSS-cascade overschreef de tweede definitie (repeat(3, 1fr)) de eerste (repeat(7, 1fr)), waardoor de datum-picker met 3 kolommen renderde en alle weekdagen + dagen wrapten naar belachelijk grote vakjes.
🎨 Polish
Spacings over de hele trends-pagina verhoogd voor rustigere "high-end SaaS"-uitstraling
De pagina voelde compact aan; KPI-cards, tabs, blog-grid en inzichten zaten te dicht op elkaar waardoor de cinematic premium-look verloren ging.
🐛 Bug fix
Type-error: Property "portalDomain" is missing in default BrandingConfig object
v6.56 voegde portalDomain toe als verplicht veld aan BrandingConfig interface, maar hooks/useBranding.ts had een DEFAULT constante getypeerd als BrandingConfig zonder dat veld. Railway deploy gefaald: Type error: Property portalDomain is missing.
✨ New feature
manageUrl in booking-bevestigingsmail en host-notificatie respecteren nu het tenant portalDomain
v6.56 fixte alleen de link-chip in de UI maar de booking-confirmation email naar de klant en de host-notificatie e-mail bevatten nog hardcoded NEXTAUTH_URL voor de "Annuleren/verzetten"-link. Resultaat: klant ontvangt mail van bookings.jouwbureau.nl maar de manage-link wijst naar senly.io.
✨ New feature
Nieuwe "Laad meer"-knop onder de Laatste inzichten-lijst — start op 8, +10 per klik, met counter voor resterende items
De "Alle trends"-tab beweerde 50 items te bevatten, maar zichtbaar waren alleen 3 trending blogs + 8 inzichten — de overige 39 waren onbereikbaar zonder filter. De vaste slice(3, 11) kapte de lijst stilletjes af.
✨ New feature
Als bureau een eigen portalDomain heeft ingesteld worden meeting-booking links automatisch op dat domein gegenereerd
BookingLinkChip en TypesPanel gebruikten altijd window.location.origin voor de URL ("senly.io/boek/..."), ook als de tenant een eigen white-label domein had ingesteld in Admin > Instellingen. Voor wederverkoper-bureaus geen herkenbare URL voor hun klanten.
🎨 Polish
Background van event-blokken krijgt nu een lichte tint (12%) van de eigen meeting-kleur
In plaats van pure witte achtergrond gebruiken alle event-blokken (week-bk, week-ext, day-bk, day-ext) nu color-mix met 12% saturatie van --block-color tegen var(--bg-elev). De border krijgt 20% saturatie van dezelfde kleur. De halve verticale kleur-strip blijft full color. Resultaat: doorzichtige achtergrond in dezelfde kleur als de strip — past beter bij de Apple-stijl met meer visuele samenhang.
🎨 Polish
De grote "Meetings" titel met kalender-icoon en de subtitel verwijderd
De .meet-hero-title h1 en .meet-hero-sub p zijn uit JSX gehaald. Alleen de tabs (Kalender / Instellingen) en de publieke booking-link blijven nu in de header. Hero-padding verlaagd van 32px top naar 16px omdat de grote titel weg is. Direct meer ruimte voor de kalender zelf.
🎨 Polish
Witte achtergrond met grijze border + halve verticale kleur-strip links als enige kleur-accent
Event-blokken hadden pastel-tinted achtergrond + gekleurde border. User wilde de schonere Apple/Linear-stijl: witte achtergrond met slechts een kleine verticale kleur-strip linksboven die niet de volle blokhoogte beslaat.
✨ New feature
Nieuwe sectie "Verdeling deze week" toont meetings + uren per kalender met progress-bars
Taak overzicht-sectie suggereerde een echt taken-systeem maar telde alleen booking-statussen (te-voorbereiden = confirmed, follow-ups = completed, etc). Verwarrend en bij gebruikers zonder Senly-bookings altijd 0.
🎨 Polish
Titels naar single-line ellipsis i.p.v. 2-regel wrap, min-hoogte event-blok verhoogd
Titel had -webkit-line-clamp: 2 wat 2 regels mocht innemen. Bij korte events (30 min = 30px) kwam de subtitle (locatie/Zoom-URL) daaronder en werd half afgesneden door overflow:hidden. Resultaat: regels die halverwege werden afgekapt — lelijk.
🎨 Polish
Titels en subtitels in alle event-blokken staan nu links uitgelijnd
Browser-defaults op <button> elementen gaven text-align: center, waardoor de tekst in elk event-blok in het midden uitgelijnd was. Mijn text-align: left op de parent button werkte niet door naar de strong/span children, vooral niet bij display: -webkit-box (line-clamp).
🎨 Polish
Lange titels worden nu na 2 regels netjes afgekapt met "...", en font-weight verlaagd van 700 naar 600
Bij events met lange titels (zoals "Kennismakingsgesprek | Social Media Beheer / Groeiservice") en lange locatie-URLs liep de tekst door en werd half afgesneden. Plus de title-font was 700 wat te dik aanvoelde voor de kleine grid-tekst.
🎨 Polish
Mini-grafieklijn op de 4 KPI-cards loopt niet meer dwars door de cijfers en labels
De sparkline (groene/roze trendlijn) lag over de volle breedte van elke KPI-card. Door de lichte opacity (0.55) scheen de lijn door de teksten "Trending nu / 50 / Actieve trends" heen — onleesbaar en visueel rommelig.
⚡ Performance
localStorage-cache voor de trends-feed (TTL 24 uur)
De Social Media Trends-pagina riep bij elk bezoek /api/trends opnieuw aan. Zelfs met de bestaande server-side cache betekende dat ~15 seconden wachten zodra de Node-proces was herstart (Railway redeploy / idle-scaling wipes _mem en .trends-cache.json).
🐛 Bug fix
Events zonder calendarName kregen verschillende kleuren in het grid maar werden in de sidebar als één groep getoond
colorForExternal() viel terug op event-titel voor de hash bij ontbrekende calendarName, terwijl de sidebar terugviel op "{provider} ({email})". Resultaat: zelfde sidebar-groep maar verschillende grid-kleuren per event. Ook waren de pastel-tints (12% saturatie) te licht waardoor het visueel niet duidelijk was dat groen=Werk en geel=Gezinsagenda overeenkwamen.
🐛 Bug fix
Events buiten 08:00-18:00 werden niet getoond — terwijl ze wel meetelden in de stats
Het week- en dag-grid had hardcoded tijdrange 08:00-18:00 (11 rijen). Events die vroeg in de ochtend of laat in de avond startten werden niet gerenderd, maar wel meegeteld in "X Meetings" / totale tijd. Gevolg: stats zeiden "11 meetings" terwijl je er maar 8 in beeld zag.
✨ New feature
Mijn agenda's sidebar toont nu elke individuele Google/Outlook/iCloud agenda als losse checkbox met eigen kleur
Sidebar had één algemene "Externe events" toggle + een hardcoded "Verjaardagen" item. Maar gebruiker heeft meerdere agendas (Werk/Gezin/Privé/Gezinsagenda) en wil die los kunnen aan/uit zetten — net zoals in de Apple Calendar agenda-beheer modal.
✨ New feature
Klik "Bekijk volledige agenda" om de kalender over het hele scherm uit te klappen
Nieuwe fullscreen state op CalendarView. Wanneer actief krijgt .meet-cal-wrap een is-fullscreen class die hem omtovert tot position:fixed inset:0 met z-index 999 — bedekt sidebar, hero header, en alle andere UI. Zijkolommen (mini-cal/filters links, stats rechts) en de Vandaag-strip worden verborgen via display:none. Alleen de hoofd-kalender vult het scherm, met fade-in animatie. Toggle-knop met expand/collapse icon naast "+ Nieuwe meeting" doet hetzelfde. Sluiten kan met de toggle-knop OF de Escape-toets.
✨ New feature
Klik op elk event in de kalender (ook externe Google/Outlook events) en er opent een Apple-Calendar-style detail-card
Externe events waren niet klikbaar (pointer-events: none) — frustrerend want je kon ze niet inspecteren. Senly-bookings hadden wel een slide-in panel maar dat zat aan de rechterzijde verstopt.
🐛 Bug fix
Op zondag toonde de toolbar de wéék erna (1-7 juni) terwijl het grid de huidige week (25-31 mei) liet zien
De maandag-berekening voor het week-label gebruikte `start.getDate() - start.getDay() + 1`. Op zondag is getDay() = 0, dus dat wordt `31 - 0 + 1 = 32` → 1 juni. Fout. Op andere dagen klopte het wel toevallig.
🎨 Polish
Up next items zijn nu visueel met elkaar verbonden via een verticale lijn in de meeting-kleur
Elk item krijgt via ::after een 1.5px verticale lijn die naar het volgende item loopt, in dezelfde kleur als de dot (via CSS custom property --line-color). De dots krijgen een witte ring (box-shadow) zodat ze "boven" de lijn drijven. Duration wordt nu een afgeronde pill (15m, 30m, 60m) i.p.v. plain tekst. Exact als de mockup-timeline look.
✨ New feature
Stat-cards (Meetings/Totale tijd/Bezettingsgraad/Gem. duur) tonen nu echte cijfers uit zowel Senly bookings als gekoppelde Google/Outlook agenda's
Eerste versie telde alleen Senly bookings, en de trend-percentages (+12%, +8%, +5%, +3%) waren hardcoded uit de mockup. Wie alleen externe agenda gebruikt zag overal 0 staan met liegende trend-percentages eronder.
🐛 Bug fix
Floating "+ Nieuwe meeting" knop rechtsonder verwijderd omdat hij botste met de chat-widget
Mijn nieuwe teal FAB cirkel piepte rechtsonder bovenuit achter de bestaande chat-widget (Crisp/Intercom). Gaf een lelijke dubbele-cirkel look.
🎨 Polish
Mini-kalender, filter-secties, hoofd-kalender, Up next en Taak overzicht zijn nu losse witte cards
Alle secties stonden direct op de body achtergrond zonder visuele scheiding. Voelde plat en ongestructureerd, anders dan de mockup waar elke sectie een duidelijke card-container is.
🎨 Polish
Elke externe agenda-event krijgt automatisch een eigen kleur via deterministische hash
Externe Google/Outlook events kregen allemaal dezelfde paarse tint, terwijl de design-mockup een gevarieerd kleurenpalet toont. Saaie one-color look.
🎨 Polish
Custom-styled checkboxes met volledige type-kleur i.p.v. native accent-color
Vorige poging gebruikte CSS accent-color, maar dat geeft browser-inconsistente render en lichte tint i.p.v. de volle kleur. Mockup heeft volledig groene/blauwe/oranje vakjes met wit vinkje.
🎨 Polish
Vandaag-cards krijgen verticale kleur-strip links, duration-pill rechtsboven, en avatar-cirkels onderaan
De today-cards lijken nu visueel op de design-mockup: 3px verticale type-kleur strip aan de linkerzijde (via ::before), duration als afgeronde pill (60m, 30m) i.p.v. plain tekst, twee avatar-cirkels met initialen die overlappen, en sterkere hover-state met type-kleur border. Nieuwe-meeting empty-card heeft nu een subtielere look.
🎨 Polish
Sidebar en datum-headers in lijn met design
Eerste pas van de redesign had nog visuele resten van de oude layout: teal-streep links van datum-headers, "Accounts beheren"- en "Campagnes"-rijen in de sidebar, "Spam"-map zichtbaar, "Gevlagd"-label i.p.v. "Met ster", en de labels-lijst was uitgegrijsd.
🎨 Polish
De donkergroene pulse-rings achter de support-FAB zijn weg
De .support-fab had twee animerende pseudo-element rings (::before en ::after) die continu uitwaaierden in de huisstijl-kleur. Op een witte achtergrond zag dat eruit als een vlek of glow achter de knop — onrustig.
🎨 Polish
Body-achtergrond in light mode is nu #ffffff op elke pagina
De light-mode body-background had een complexe radial-gradient stack met #f2f7f7 + teal/purple tints. Dat gaf overal een licht groen-gewassen sfeer — gebruiker wilde gewoon strak wit.
🎨 Polish
Meetings opent nu standaard in Week-view en alle UI-elementen matchen exact het mockup-design
De v6.20 redesign had de juiste layout-structuur (3-kolom + vandaag-strip) maar de details week visueel af van het mockup: stat-cards waren te plat, toolbar-knoppen te basic, week-view bookings hadden solid kleuren i.p.v. pastel-tint, en de standaard view was Maand.
🎨 Polish
Off-white #f3f5f8 vervangen door pure white
.smtr-root background is nu #ffffff i.p.v. de off-white tint van v6.24. Dark-mode override blijft staan zodat het portaal-thema in dark gewoon donker rendert.
🎨 Polish
Pagina-achtergrond gewijzigd naar #f3f5f8 (zachte koel-grijze tint)
De Trends-pagina had de standaard portaal-achtergrond met een groen-zweem, terwijl de mockup een rustig off-white toonde dat de witte cards beter laat ademen.
🎨 Polish
3-koloms e-mail layout krijgt de high-end look van de design-screenshot
De oude EmailInbox voelde plat — geen visuele scheiding tussen mappen / lijst / lezer, geen sectie-groepering in de sidebar, en geen "ademruimte" rond de gelezen mail. Vergeleken met de mockup oogde 't functioneel maar niet premium.
🎨 Polish
Initialen-cirkels (LV / BS / CM, JM / AK / RT, EK / PD / NW) vervangen door echte portretfoto's
De auteur-avatars op de Trending Blogs-cards toonden 2-letter-initialen op gekleurde cirkels. Zag er goedkoop uit en suggereerde fake-content.
🎨 Polish
Inline SVG-componenten in officiële merkkleuren voor Instagram, TikTok, LinkedIn, YouTube en Facebook
De filter-chips en categorie-sidebar gebruikten emoji (📷 voor IG, 🎵 voor TikTok, etc.) die op verschillende OS-versies anders renderen en niet matchen met de huisstijl van elk platform.
✨ New feature
Meetings heeft nu een 3-kolom layout met hero header, mini-kalender, weekstats, en vandaag-strip
De Meetings-pagina had een simpele 2-kolom layout zonder overzicht van statistieken, aankomende afspraken, of een dagweergave-strip onderaan.
✨ New feature
TrendsDashboard volledig herschreven naar het nieuwe ontwerp
De oude trends-pagina had geen samenhangende structuur — KPI's, trend-cards en bookmarks stonden los van elkaar zonder duidelijke hiërarchie.
⚙️ Infra
Nieuwe trends.css (~960 regels) met .smtr-* prefix
Aparte stylesheet voor de trends-pagina, geïmporteerd vanuit page.tsx. Alle styling via design-tokens en color-mix() voor pastel-tints. i18n: 19 nieuwe keys (smt_*) in nl/en/de/fr. Pseudo-stats (leestijd, bereik %) zijn deterministisch op item-id zodat refreshes consistent zijn.
🎨 Polish
Elke pagina bereikbaar vanuit de zijbalk heeft nu dezelfde 20px eigen padding
Na de eerste ronde (Dashboard, Kalender, Trends) hadden de overige pagina's nog hun oude padding: .container-pagina's 40px, Launchpad 40px, Onboarding/Affiliate 40px inline, Email 0px, Integratie-detail 28px. Hierdoor verschilde de inhoudsuitlijning per sectie.
🎨 Polish
De 3 drijvende teal-radial-orbs op de Launchpad-achtergrond zijn verwijderd
De decoratieve <div class="lp-bg-decor"> met 3 animerende huisstijl-orbs is uit LaunchpadView.tsx gehaald. De CSS-keyframes blijven staan voor het geval we ze later opnieuw willen aanzetten — geen impact want het element wordt niet meer gerenderd.
🎨 Polish
Alle hoofdpagina's starten en eindigen nu op precies dezelfde horizontale positie
Content-kalender had een eigen wrap met max-width: 1600px + 40px zij-padding + auto-margin, waardoor de inhoud op brede schermen gecentreerd werd met overdreven veel witte ruimte rechts (asymmetrisch t.o.v. de sidebar). Dashboard en Trends hadden weer 0 zij-padding op hun root, terwijl Meetings via .meet-topbar standaard 20px gebruikt. Effect: vier pagina's die naast elkaar inconsistent voelden.
🎨 Polish
Maandwinst, Laatste activiteit, Snelle acties en Aankomende deadlines hebben nu semi-bold i.p.v. bold titel
.taskio-card-head h3 font-weight van 700 naar 600. Eén tandje dunner, oogt rustiger naast de gradient KPI-tegels en past beter bij de premium typografie van de rest van het portaal. Letter-spacing -0.015em blijft voor de optical correction.
🎨 Polish
Achtergrond-orbs op de Launchpad waren te subtiel — bijna onzichtbaar
De body heeft zelf al een teal-tinted gradient. Mijn extra orbs op 35% opacity met 80px blur en 32% kleurverzadiging vielen daar volledig in weg — je zag visueel niks veranderen.
🎨 Polish
Vier extra pagina's krijgen ⓘ naast de titel i.p.v. uitleg-tekst onder
Na de uitrol op admin-pagina's (v6.12) bleven nog vier pagina's achter met de oude lange uitleg-paragraaf onder de titel.
🎨 Polish
Custom rollen, Ingediende claims, Overzicht, Activiteiten, Commissieregels
Onder de titel van die pagina's stond steeds een lange uitleg-alinea die ruimte innam en de hero "log" maakte. Op Launchpad en Takenbeheer was dat patroon al vervangen door een ⓘ-icoontje — dat moest naar de rest.
🎨 Polish
Achtergrond ademt mee in de bureau-kleur — elegant, niet afleidend
De Launchpad-pagina had een platte witte achtergrond — voelde leeg en weinig "wow" voor de eerste indruk waar gebruikers binnenkomen.
🎨 Polish
Launchpad-titel staat nu netjes uitgelijnd met Tools / CRM / Trends
.lp-root had padding: 32px 0 64px — geen horizontaal padding. Daardoor plakte de "Launchpad"-titel tegen de menubalk-rand terwijl andere pagina's 40px margin van die kant kregen via .container.
🎨 Polish
Pagina /admin/roles niet meer ingesnoerd op 1320px
Net als Launchpad had de Custom rollen-pagina nog de oude .container wrapper (max-width 1320px) waardoor de inhoud gecentreerd stond in een smaller frame i.p.v. mee te lijnen met de rest van het admin-deel.
🎨 Polish
Launchpad gebruikte de oude .container wrapper (max-width 1320px) — nu full-width
De Launchpad-pagina werd geclamped op 1320px breed met 40px horizontale padding extra erbovenop. Op brede schermen (of zoals bij gebruiker met 80% Chrome-zoom) zag dat er ingesnoerd uit naast het dashboard dat wél de volle breedte gebruikt.
🎨 Polish
Actie-knoppen en stats plakten direct onder de titel
Doordat de uitleg-alinea verdween en achter het (i)-icoontje verschoof, plakten de actie-knoppen / stats / KPI-grid direct onder de h1 — voelde te krap, niet ademend.
🎨 Polish
Herbruikbare <InfoPopover /> component + 4 pagina's aangepast
Op Tools, Launchpad, CRM Leads en Social Media Trends stond de uitleg-alinea permanent in beeld onder de titel — terwijl je die info maar één keer hoeft te lezen. Verschillende stijlen tussen pagina's ook.
🎨 Polish
Vier kolommen krijgen elk een eigen glass-card met tone-gekleurde radial glow
De deadlines-widget was visueel "vlak en saai": alle taken in een grijze rij met dunne 4px border-left, kolom-headers waren alleen tekst, "VANDAAG"-empty toonde een dood "—". Niet passend bij de premium look van de Maandwinst- en Klanten-widgets.
🐛 Bug fix
Info-knop hing onder de titel i.p.v. midden ernaast
De heading op de Takenbeheer-pagina had margin-bottom: 14px ingebakken — daardoor stond de h1-box hoger dan z'n visuele tekst en kwam de (i)-knop met align-items: center optisch op de bodem van het tekst-blok terecht.
🎨 Polish
Info-popover naast de titel i.p.v. een alinea eronder
De subtitel onder "Takenbeheer" nam veel ruimte in en stond ongelukkig op "synchroniseert automatisch met GoHighLevel" — terwijl Takenbeheer prima standalone werkt, GHL is maar één van de optionele integraties.
🎨 Polish
Inline-uitklap vervangen door gecentreerde popup met blur achtergrond
De inline-uitklap (v6.01) maakte het dashboard heel lang scrollbaar als je 18+ klanten had — alles werd onder elkaar gepropt en duwde de rest van het dashboard naar beneden.
🐛 Bug fix
Knop linkte naar /financieel maar deed visueel niets bruikbaars
De "Bekijk alle 18 klanten →" knop was een Link naar /financieel. Voor een manager zonder viewFinance-permissie deed dat niets, en zelfs met permissie kreeg je de algemene financieel-pagina i.p.v. specifiek de klantenlijst met bedragen.
🎨 Polish
Beschrijving naast de titel i.p.v. een blok eronder
De uitleg-alinea onder "Verdien 30% MRR per verwijzing" nam veel verticale ruimte in voor informatie die je maar één keer hoeft te lezen.
🐛 Bug fix
Titel "Massa-koppeling" stond naast i.p.v. onder de eyebrow
Door de inline-flex op .sa-title-row zat de h1 op dezelfde regel als de "SOCIAL ACCOUNTS" eyebrow ernaast i.p.v. eronder.
🎨 Polish
Stats omgezet naar compacte gekleurde mini-pillen
De "72 slots · 0 gekoppeld · 5 verlopen"-regel was puur tekst met scheidings-puntjes. Niet meteen visueel onderscheidbaar.
🐛 Bug fix
Manager-widget gebruikt nu .taskio-revenue-* CSS i.p.v. .monthly-bar-*
Er bestaan twee admin "Maandwinst"-implementaties: één op /financieel (.monthly-bar-*, brede capsules) en één op het admin-dashboard (.taskio-revenue-*, smalle 8-18px pillen). v5.94 koppelde de manager-widget aan de eerste — daarom kreeg de manager BREDE rechthoeken in plaats van de smalle pillen die admin op zijn dashboard ziet.
🎨 Polish
Beschrijving als popover i.p.v. permanent zichtbare alinea
De uitleg-tekst onder de titel "Massa-koppeling" nam veel verticale ruimte in voor info die je maar een keer hoeft te lezen.
🎨 Polish
Jaar-overzicht is nu span 3 (75% breed) i.p.v. span 2 (50%)
De Jaar-overzicht widget had defaultSpan 2 — half scherm. Admin Maandwinst (revenueChart) heeft defaultSpan 3 — driekwart scherm. Daardoor oogden de bars op het manager-dashboard smaller dan op het admin-dashboard, ondanks dat de CSS sinds v5.94 1:1 gedeeld wordt.
✨ New feature
Inkomen wordt nu opgesplitst in klant-fees (teal, basis) en vast maandbedrag (violet, toeslag)
Een staaf per maand toonde alleen het totaal — geen onderscheid tussen waar het inkomen vandaan komt. Manager kon niet snel zien hoeveel deel klant-fees vs flat fee was per maand.
✨ New feature
Filter-chips bovenaan: Beide / Klant-fees / Vast bedrag
Drie chips in de header (vergelijkbaar met legend van admin maar klikbaar). Klik "Klant-fees" → alleen die kolom getoond. Klik "Vast bedrag" → alleen flat fee. Klik "Beide" → terug naar gestapeld. Jaartotaal in de sub-header past zich aan op het actieve filter. Hover-detail toont altijd beide bedragen + totaal ongeacht filter.
⚙️ Infra
i18n: 3 nieuwe keys × 4 talen = 12 strings
mgrwidget_year_filter_all (Beide / Both / Beide / Les deux), mgrwidget_year_legend_clients en mgrwidget_year_legend_flat. CSS-class .mgr-year-chip toegevoegd voor de chip-styling (pill-shape, teal-active-state).
🎨 Polish
ManagerIncomeYearWidget gebruikt nu DIRECT de admin .monthly-bar-* CSS-classes
Vorige versies probeerden de admin-stijl te imiteren via aparte .mgr-year-* classes, maar het kwam visueel niet exact overeen (bar-hoogte, profit-label positie, hover-bubble, projectie-tonen).
🎨 Polish
Beide manager-widgets ~25% korter in de hoogte
De widgets namen veel verticale ruimte in. Het jaar-overzicht had 220px hoge bars, het inkomen-blok 18-26px padding rondom. Op normale schermen scrolde de rest van het dashboard daardoor te ver omlaag.
🎨 Polish
Premium glass-effect + gradient bars met inner highlight
Cards krijgen nu een echte glass-look: backdrop-filter blur(10px) + saturate(140%), inset highlight bovenaan, drop-shadow voor diepte, en op hover een subtiele teal-glow ring. Bars zijn niet meer flat-teal maar een gradient (lichter teal bovenaan → teal mid → donker teal onder) met een witte inner-highlight aan de top, plus een drop-shadow eronder. Hero-cijfer gebruikt een gradient met drop-shadow filter voor luxe glow. Klant-rijen schuiven 2px naar rechts bij hover, sub-stat blokjes lichten subtiel op met teal-border, "Bekijk alle klanten" knop heeft nu een echte ghost-button stijl met teal border. Alles werkt in dark én light mode.