From SeedCode Documentation

DayBackForFileMaker: Editing the Calendar's Appearance

The look and feel of DayBack is controlled through a CSS file which you can edit to alter the calendar's appearance and match the colors used in your own file.

Each CSS file is a unique theme for the calendar. You'll find tips for editing themes and a nice walkthrough video here: Editing Themes.

You can use the online version of DayBack to inspect the classes available to you. Here's a cool little video to show you how.


Important Note on Smart Quotes:

Smart quotes (“ ”) are not compatible with CSS strings and will render the values invalid. When editing CSS themes in FileMaker, make sure to disable Smart Quotes (File Options -> Text -> Use smart quotes). Your opening and closing quotes should look identical in the editor (" ").

Styling the Text of an Event

Most of the mods which follow are about styling the calendar's interface and how events are rendered. If you're interested in calculating the style of event content (like making a customer's name bold, or adding a caution icon if the meeting is about errors) check out Event Styles.

Can I Load Different CSS for Each User?

Yes. By modifying just one script you can add CSS specific to certain users. This only runs at startup, so if you are having users log in and out of your solution after startup, you'll want to run DayBack's "Upon Opening" script after each login change.

Edit the script "Export Theme ({Preview})" and in the Else branch, replace the single ExportFieldContents line with lines 22 through 31 in the screenshot below. You'll see just a single branch here for the user "Bob", but change that to "=" and you can create a separate branch for each user who needs special CSS. (Click on the image for a larger version.)

Line 25, which you can't really read in the screenshot, is where you actually add new CSS. Here is the second part of the SetField dialog and the example here just turns off the green plus button:

// Hide the plus button for new events (and move he analytics button down to where plus used to be)
.add-event-container {
display: none !important;
}
.measure-button-container {
bottom: 30px !important;
}"
& ¶ &
// Hide the "new event" popover button
"div[content=newEvent]{
display: none !important;
}"
& ¶ &
CalendarInterface::ExportGlob

Don't forget to include the regular CSS at the end, in the last two lines which reference the CalendarInterface::ExportGlob. You'll find examples of some common CSS changes below.

Some Common CSS Requests

Add the CSS below into the body of your CSS file in DayBack. One tip: add the css somewhere in the middle of the existing CSS, not as the first line.

My users don't want to see the red line for the current time

If you don't want to see the red time line, just edit the CSS as described above and then add this:
#timelineTime, #timelineTimeVertContainer, #timelineContainer, #timelineContainerVert {
display: none !important;
}
You can also change the color and font size of the current time by modifying the attributes for those CSS elements like this:
#timelineTime {
color: green !important;
font-size: 1.2em !important;
top: -14px !important;
}
#timelineContainer {
border-top-color: green !important;
}

Can I increase the font size for events so they are easier to read?

Yes. Add the following lines. The first changes all the views except horizon; the second class changes the horizon view.
.fc-event {
font-size: 1em;
}
.nub-content {
font-size: 15px;
}

How can I remove the start time from displaying?

If you don't want to see the event start time until you click on an event, you can add this to your CSS:
.fc-event-time {
display: none;
}
To pull this from just the Schedule view, preface it with the view name like this:
.fc-view-agendaResourceVert .fc-event-time {
display: none;
}
If you'd like to pull the event title along side the start and end times on the schedule views, try this:
.fc-event-time {
display: inline;
}
.fc-event-title {
display: inline;
}

Can I prevent the new event popover or plus button from showing?

Yes, add this CSS somewhere after the first few declarations to hide the new event popover:
div[content=newEvent]{
display: none !important;
}
And add this to hide the draggable, green plus button for creating events:
.add-event-container {
display: none;
}
.measure-button-container {
bottom: 30px !important;
}"

Can I remove the delete button from the event's popover?

Yes, add this CSS somewhere after the first few declarations:
.dbk_editEvent .dbk_button_text_danger {
display: none;
}

Can I remove the custom actions button/cog from the event's popover?

Yes, add this CSS somewhere after the first few declarations:
.dbk_popover .fa-cog {
display: none;
}

That little handle for resizing an event makes small events look too crowded; can I get rid of that?

Yes, adding this CSS somewhere after the first few declarations will pull the handle but still let you drag the event:
.fc .ui-resizable-handle {
opacity: 0;
}

Can we change the color/opacity of the new event highlight?

Yes, add this CSS somewhere after the first few declarations to change the color to yellow and increase opacity/visibility:
.fc-cell-overlay{
background-color: yellow;
opacity: .5;
}
Note: You can specify a color or enter an rgb attribute if desired. Opacity can be specified between 0 (invisible) and 1 (solid).

Can we rotate the column headers on the Resources / Schedule view?

Yes. This a cool little mod =) Note that you have to set your abbreviations to be the same as your resource names to get the full effect. Here's a screenshot, CSS follows:
.fc-view-agendaResourceVert .dbk_columnHeader .fc-widget-header span {
-webkit-transform: rotate(-70deg);
-moz-transform: rotate(-70deg);
-o-transform: rotate(-70deg);
-ms-transform: rotate(-70deg);
width: 100px;
margin-top: -50px;
top: 190px;
position: fixed;
margin-left: -1.2%;
}
.fc-view-agendaResourceVert .dbk_columnHeader .fc-widget-header {
text-align: left;
}
.fc-view-agendaResourceVert .fc-date-header span {
position: fixed;
}
.fc-view-agendaResourceVert {
top: 90px;
}
.fc-view-agendaResourceVert .dbk_columnHeader .fc-last span[style^="width"] {
margin-left: -1%;
position: fixed;
width: 100px !important
}
.fc-view-agendaResourceVert .date-column-header{
position: fixed;
top:90px;
}

Can I color alternate rows on the schedule views?

Yes. Add this to get alternate-row scheduling that makes the calendar look more like a spreadsheet.
.fc-agenda-slots tr:nth-child(even){
background-color: rgba(173, 216, 230, 0.19);
}
.fc-agenda-slots tr.fc-minor td {
border-color: #9f9f9f transparent transparent;
}

Can I hide one of the tabs in the sidebar, like "Filters"?

Yes. I'm not sure you'll want to hide the settings tab as without it there is no way to get to the Account Settings section of the calendar, but if you'd already entered your license--and you remember how to undo what follows--maybe that's ok.
Hiding the tabs is easy. Here's the code to hide Filters and Calendars, resizing the Settings and Mini-Calendar tabs to fill the width. Add the following near the bottom of DayBack's CSS file, right above the line "/* !-- Additions Block Do Not Remove - More Classes --> */"
.dbk_sidebar .filters, .dbk_sidebar .calendars {
display: none !important;
}
.tabButtonContainer button.settings, .tabButtonContainer button.mini-calendars {
width: 50%;
}

Can we change the color of the lines between days of the month or week?

Yes; you can change the grid lines like this:
.fc-widget-content, .fc-widget-content {
border-color: #a94442;
}

Can we change the color of the highlight for the current day?

Yes; you can set the highlight color for the current day like this:
.fc-today {
background-color: rgba(47,79,79, .4);
}

Can I make the button to show and hide the sidebar more obvious?

Yes; the code below will move this button to the right of the date header, make it larger, and cause the "show sidebar" text to be visible all the time. The last two sections swap out the icon: you can use almost any of the font awesome icons shown here.
@media only screen
and (min-device-width : 1025px)
and (max-device-width : 3224px) {
.sidebar-toggle-container {
margin-left: 400px;
margin-top: 15px;
}
.sidebar-toggle-container .fa-caret-left, .sidebar-toggle-container .fa-caret-right {
font-size: 40px ;
color: rgb(66, 139, 202);
}
.sidebar-toggle {
overflow: visible ;
background-color: #FFFFFF ;
}
.sidebar-toggle-label {
font-size: 13px;
}
.sidebar-toggle-container .fa-caret-left:before {
content: "\f190" !important;
}
.sidebar-toggle-container .fa-caret-right:before {
content: "\f18e" !important;
}
}

Can I change the icons used throughout the calendar?

Sure! For example, you can change the calendar icon in DayBack's sidebar to a home icon. Scroll to the bottom of the CSS text, where you'll find placeholders for some of the different icons used in DayBack. Add a new line for the calendar icon placeholder, changing it to the home icon, like this:
.fa-calendar:before {
content: "\f015";
}
At this link, you'll find a list of icons that can be used in DayBack. Once you find an icon you'd like to use, copy the icon's code, such as "&#xf015". Then, follow the form above, replacing the "&#x" with "\", changing any of the icon placeholders or adding new lines for icons not listed.
Icons not already listed in the CSS theme file:
.fa-calendar
.fa-cog
Note: Watch out for smart quotes! Make sure the icon code is wrapped in straight quotes. (Copy/paste these "quotes" if your keyboard just doesn't want to type them in. After pasting, use "Undo" in the edit menu to remove text formatting -- this will not remove the text you've pasted.)

Can I make customizations to a specific view only?

CSS modifications to the calendar can be formatted to only apply to a specific view. If you'd like your changes only to apply when in the mobile (phone) calendar mode, you can use the following selector:
.mobile-device
The inverse of that, for when viewing the calendar in the full, non-mobile version is:
.not-mobile-device
Adding one of the following selectors to the beginning of your CSS will specify which view to apply the CSS to:
Name of CSS selector -- Corresponding tab in the calendar
.fc-view-agendaDay -- Day view with times down the left side
.fc-view-basicDay -- Simple Day View
.fc-view-agendaWeek -- Week view with times down the left side
.fc-view-basicWeek -- Simple Week View
.fc-view-month -- month view
.fc-view-basicHorizon -- Gantt Chart
.fc-view-basicResourceDays -- Resource daily view
.fc-view-agendaResourceVert -- Resource tab with times down left side
.fc-view-agendaResourceHor -- Pivot Schedule (was "Grid" view)
.fc-view-basicResourceVert -- Resource tab, list view
.fc-view-basicResourceHor -- Pivot List
You can see an example of CSS applied specifically to the Horizon view in the following section.

What about changing the popover for just one source/calendar?

You can restrict your CSS mods to just one calendar as well. DayBack uses the calendar name as the class name for the popover (use the case sensitive calendar name with spaces and the "@" sign removed). For example, this will hide the custom actions cog on just the calendar named "Sample Events":
.SampleEvents .dbk_popover .fa-cog {
display: none;
}
The calendar name is also used as a class in this way when drawing an event to the calendar (such as how the event appears on the month view before you click on it). For example, this will give events for the Sample Events source a drop shadow:
.fc-event.SampleEvents {
border-color: rgba(0, 0, 0, .3);
border-width: 1px;
-webkit-box-shadow: 3px 10px 11px 0px rgba(0, 0, 0, 0.75);
-moz-box-shadow: 3px 10px 11px 0px rgba(0, 0, 0, 0.75);
box-shadow: 3px 10px 11px 0px rgba(0, 0, 0, 0.75);
}

I'd like to shade weekends in Horizon view so it's easier to see where weeks start and stop?

Great idea:
.fc-view-basicHorizon .dbk_day_sat .fc-day-content, .fc-view-basicHorizon .dbk_day_sun .fc-day-content {
background-color: rgba(200, 201, 204, 0.11) !important;
}
You might also like this mod, which adds a vertical line to the beginning of your week. Works great with the mod above. In your CSS, replace "mon" with your start day.
.fc-view-basicHorizon .fc-mon {
border-color: rgba(10, 189, 237, 0.22) !important;
border-left-width: 2px;
}
Here is a before and after of what these two mods look like; it's subtle but I think it makes the horizon view easier to scan at a glance:

Can I shade a particular time ranges, like from noon to 2pm when we're closed for lunch?

Yes; each row on the timed views has a number and you can set the background of those like this:
.fc-slot32, .fc-slot33, .fc-slot34, .fc-slot35, .fc-slot36, .fc-slot37, .fc-slot38, .fc-slot39 {
background-color: rgba(128, 128, 128, 0.16);
}
Notice how all the rows I want to change are separated by commas. The actual row numbers you'll use will depend on what your "earliest time" setting is, and what your "time scale" is set to. So add the code above and then see where you are, moving the row numbers up and down to find the rows that work for your settings.
The shaded area will move to other times if users change these "earliest time" and "time scale" settings in DayBack's left hand sidebar.

Can I change the color of the "none" resource column?

Yes! Using this technique you can assign a color to any resource column simply by replacing "none" with the name of that resource.
.dbk_calendarContent td[data-resource="none"] {
background-color: #DFECF5 !important;
}

Can I style the date numbers in the sidebar's mini-calendar?

Sure thing. The .dbk_dayNumber selector will let you style all day numbers in the mini-calendar. Or, you can target just the current day or selected day (date in focus). For example, you might want to make the current day and the selected day bold:
.dbk_dayNumber.dbk_today, .dbk_dayNumber.dbk_selected {
font-weight: bold;
}

How can we remove the "New Status" button in the filters sidebar?

While you can't pull this for only some users, you can remove it entirely. (Remember that these statuses are records in FileMaker's CalendarColors table, so you can apply access privilege rules to that table if you only want some users to be able to add statuses).
Here is the CSS for removing the button outright:
.list-selector.list-event-button {
display: none;
}
If you want to pull the "cog" icon for adjusting status names and colors you can use this:
.list-selector .fa-cog {
display: none !important;
}

I'd like to hide the help icons that link to DayBack's docs

No problem. But note that these buttons first call a FileMaker script, so if you'd like, you can repurpose the "Calendar Help From WebViewer" script to perform another action like open your own help layout. To hide them altogether, just add this to your CSS theme:
button.btn.btn-link.btn-help {
display: none;
}

How can I hide the status or resource filters on the sidebar?

Add the following to hide the status filters
.filters-status {
display: none;
}
or the following to hide the resource filters
.filters-resource {
display: none;
}

Can I change the appearance of collapsed 'breakout' rows in Horizon view?

Sure. Here is the CSS for the screenshot below:
.breakout-title-collapsed td {
color: rgb(183, 184, 190);
background-color: rgb(250, 250, 250);
}

Can I change the size of the 'breakout' rows in Horizon view?

The following CSS will reduce the font-size of the text and remove padding on the top and bottom of the 'breakout' rows, effectively making them take less space on the calendar:
.horizon-breakout-title td{
font-size:14px !important;
padding: 0px 20px;
}

Can I change the size of the label column in the Resource Pivot views?

Sure. Adjust the width value in the following CSS to adjust the column size:
.fc-row-label{
width:100px;
}

Can I increase the default heights of text fields in the popover?

Sure thing. The different fields are listed below with their default heights.
/*Title height*/
textarea.title-input { 

min-height: 34px; 

}
/*Description height*/
textarea#description { 

min-height: 78px; 

}
/*Additional Fields height -- affects all text "edit" additional fields*/
.utility-panel textarea {

min-height: 28px; 

}
Increasing the height of title and/or description may cause a scroll bar to appear in the popover for overflow. If you'd like to avoid that popover scroll bar, you can increase the height of the whole popover as well. Be sure to adjust these two values by the same amount (although that amount may not exactly correlate to the adjustments made above).

.edit {

height: 460px; 

}

.edit .field-container { 

max-height: 375px;

}

Can I color the background of specific dates like holidays?

Yes, though you may want to consider creating appointments for holidays instead: appointments will show up on every calendar view (the CSS below works with Month, Horizon, and Resource Pivot List views) and appointments can be created using DayBack's repeating events engine. But if you do want to style a specific date, here's how.
[data-date="2018-07-23"] {
background-color:red;
}

How can I remove the word "Saved" from the message bar after making changes to the event?

Some users have expressed confusion with the word "Saved" appearing on the message bar when the entire bar acts to undo changes to an event.
If you don't want to see the word "Saved" when this message appears, you will first need to change the following line in your translation file:
'saved: "Saved",
to
'saved': " ",
To delete the check sign and the separator on the message popover, you can add this to your CSS:
.message-content .fa-check, .message-content .message-separator {
display: none;
}

Can I make a specific popover field read-only

While we don't yet have a built-in way of making specific fields read-only, you can prevent users from being able to click on a specific field using the following attribute:

pointer-events: none;

For example, preventing users from clicking into the Title field (and making it darker than other fields) can be done with:

.dbk_editEvent #title{
pointer-events: none;
background: rgb(204, 204, 204);
color: rgb(51, 51, 51);
border-color: rgb(60,60,60)
}

Note: Since this only prevents mouse clicks, it works great for picklist items, like Resource, or Status, but users will still be able to use the Tab button to enter a text field.

Retrieved from http://archive.seedcode.com/pmwiki/index.php?n=DayBackForFileMaker.CSS
Page last modified on May 17, 2023, at 11:03 PM