solution • Freshdesk via Django templates - martindubenet/wed-dev-design GitHub Wiki
The Freshdesk webapp, a product developed by Freshworks.com, is a solution coded in Django that offers an all in one dashboard from where you can set-up the required features, load/edit a theme and populate content.
« Freshdesk is to Online Support Website what Wordpress.com for Bloging »
Customizing a theme
Responsive breakpoints
The 4 following class CSS exist within the solution, as a mandatory stylesheet from the app itself. You can find them in portal_utils-*.css.
| Reference | Media queries | Class CSSdisplay: ✅block VS ❌none |
|---|---|---|
| Desktop (default) | @media screen {…} | .hide-desktop❌.hide-tablet❌.hide-in-mobile✅.show-in-mobile❌ |
| Laptop | @media screen and (max-width: 75em){…} Viewport ≤ 75em/~1200px |
.hide-desktop❌.hide-tablet❌.hide-in-mobile✅.show-in-mobile❌ |
| Tablet (horizontal) | @include at-breakpoint($media-mobile-tablet){…} Viewport ≤ 60em/~960px |
.hide-desktop✅.hide-tablet❌.hide-in-mobile✅.show-in-mobile❌ |
| Tablet (vertical) | @media screen and (max-width: 45em){…} Viewport ≤ 45em/~720px |
.hide-desktop✅.hide-tablet✅.hide-in-mobile❌.show-in-mobile✅ |
| Smartphone | @include at-breakpoint($media-mobile){…} Viewport 30em/~480px |
.hide-desktop✅.hide-tablet✅.hide-in-mobile❌.show-in-mobile✅ |
Multilingual portal
Lang switcher
In the portal, users will have an option to switch between the supported languages by using the language switcher {{ portal | language_list }}.
Lang conditinal option
I tried the simpler
{% else %}for English but it appered buggy in some situation.
{% if portal.current_language.code == 'fr' %}
Langue de Molière
{% elsif portal.current_language.code == 'en' %}
Checkspear language
{% endif %}
Portal customization options
Tab 1: « Color and Font »
Tab 2: « Stylesheet »
This available for us to customize is a SASS.scss file that is @import within the app's theme.css file.
/support/theme.css?v=*******
At the moment it does NOT look like the « Color and Font » values are available for us to use within this SCSS stylesheet. I do know a few mixins and breakpoints variables and values.
| mixin + variable | value |
|---|---|
@include at-breakpoint( $media-mobile ) |
@media screen and (min-width: 30em; ) |
@include at-breakpoint( $media-mobile-tablet ) |
@media screen and (min-width: 60em; ) |
@include border-radius() |
*-border-radius: …;border-radius: …; |
@include box-shadow() |
*-box-shadow: …;box-shadow: …; |
@include transition-duration()in conjonction with@include transition-property() |
transition-duration: …;transition-property: …; |
Custom variables
I propose this set of custom vars to replicate « Color and Font » values within our stylesheet.
| form labels | scss variables |
|---|---|
| $portal-bgColor__body | Background-color: Body |
| $portal-bgColor__header | Background-color: Header |
| $portal-bgColor__footer | Background-color: Footer |
| $portal-bgColor__help | Background-color: Help center |
| $portal-tabColor__bg | Tab colors: Background |
| $portal-tabColor__active | Tab colors: Active tab |
| $portal-fontFamily__base | Portal fonts: Base font |
| $portal-fontFamily__heading | Portal fonts: Heading font |
| $portal-fontColor__base | Portal fonts: Base color |
| $portal-fontColor__heading | Portal fonts: Heading color |
| $portal-linkColor__base | Link color: Link text |
| $portal-linkColor__hover | Link color: Link text hover |
| $portal-accentColor__heading | Form element: Heading divider and input focus glow |
| $portal-btnColor__primary | Form element: Primary action button |
| $portal-btnColor__secondary | Form element: Secondary action button |
Tab 3: « Layout and pages »
Portal layout (slots)
- Head
- Header
- Footer
- Page layout (main template)
Portal pages (templates)
- General pages
- Portal home
- New user signup
- Login page
- Search results
- Solutions
- Solutions home
- Article list
- Article view
- Solution category home
- Discussions
- Discussions home
- Discussion category home
- Topic list
- My Topics
- Topic view
- New topic
- Tickets
- New ticket
- Tickets list
- Ticket details
