Akinon Release Notes (05/12/2025) are now live! Click here to learn what's new.
LogoLogo
API Reference
  • Home
  • Quick Start
  • Tutorials
  • Technical Guides
  • Release Notes
  • Glossary
  • Welcome to Akinon Technical Guides
  • ACC
    • ACC CLI
    • Create Application via CLI
    • Deploy Environment Variables
    • App Store for Developers
  • Omnitron
    • Product Types
    • Product Categorization
    • Splitting a Merged Order Item
  • Commerce
    • Shipping Rules Calculator
    • Data Source Shipping Options
    • Attribute Based Shipping Options
    • Filtering Products
    • Conversation & Messages
    • Sitemap Configuration
    • Weight-Based Product Sales
    • Group Attribute Sets
    • Contract Management
    • Find in Store for Whippy Ware
    • Plugins
    • Remote Price
    • E-mail Templates
    • Loyalty Accounts
    • Search Structure
    • User Segmentation & Rules
    • Promotions
  • OMS
    • Getting Started with OMS
    • Basic Setup
    • Scenarios
    • Capacity Feature
    • Package Management
      • Packages
      • Transfer
      • States
    • Commands
      • Packages
        • Package Command Parameters
        • DeAllocate Package Reservations Command
        • Channel Based Complete Packaging without Shipment Command
        • Complete Packaging with Shipment Command
        • Complete Packaging without Shipment Command
        • Package Refuse with Denial Reason Command
        • Product Not Found & Wrong Product Command
        • Product Not Found & Wrong Product Command Advanced
        • Package Packed for Refund Command
        • Block The Package For Action Command
        • Unblock the Package For Action Command
        • Update The Package’s Invoice
        • Manual Planning Command
      • Transfer
        • Transfer Order Advanced Command
        • Product for Transfer Not Found & Wrong Product Command
        • Transfer Delivered Command
        • Transfer Dispatch Command
        • Transfer Ready for Dispatch Command
        • Transfer Out Of Stock
      • Shipment
        • Shipment Order Command
        • Package Advanced Shipment Command
        • Ship The Package Command
        • Ship The Package without Shipment Integration Command
        • Update The Package’s Shipment Status Command
        • Update Shipment Info of Package Command
    • Inventory Locations & Engine
      • Properties & Domain Relation
      • Customization
      • Inventory Engine
    • Fulfillment
      • Shipments
      • Invoice Integration
    • Webhooks
      • Webhook Examples
        • Order Webhook
        • Package Webhook
        • Shipment Webhook
        • Stock Location Webhook
        • Transfer Webhook
    • Integrating OMS with Seller Center
  • Instore
    • Getting Started
    • Cash Register Integration
    • OTP (One Time Password) Process
    • Services
      • Password Reset Services
  • Marketplace Dashboard
    • N11 Marketplace Setup Configurations
    • Trendyol Marketplace Setup Configurations
    • Walmart Marketplace Setup Configurations
    • Amazon Marketplace Setup Configurations
    • Hepsiburada Marketplace Setup Configurations
  • Project Zero
    • Django
      • Basic Setup
      • Project Structure
        • Templates & Components
        • Private Dependencies
        • Omnife Project Submodule
        • Webpack
        • ESLint Rules
        • Bundles
        • Multilanguage & Translation
        • Environmental File
        • Custom Error Pages
        • Icon Font
      • Page Types
        • Static Pages & Flatpages
        • Account Page
          • Template Rendering in Account Pages
          • Forms & Validation
        • Basket Page
          • Redux Basket State
          • Basket Page - View
        • Checkout
          • Redux Checkout State
          • View & Template Rendering
          • Masking & Validation
      • Theming & Styling
      • Widgets
      • SEO Management
      • Extending Project Zero
    • Next.js
      • Basic Setup
      • Deployment
      • Static Assets
      • Plugins
      • Widgets
      • Icons
      • Localization
      • SEO Management
      • Advanced Usage
      • Data Fetching
        • Client
          • Account
          • Address
          • Basket
          • Checkout
          • Misc
          • Product
          • User
          • Wishlist
        • Server
          • Category
          • Flat Page
          • List
          • Menu
          • Product
          • SEO
          • Special Page
          • Widget
  • App Maker
    • Setup Your Environment
    • Plugin Quickstart
    • Create Project
    • Setup Existing Project
    • Deploy Project
    • Users and Roles
    • Add Public Key
    • App Maker CLI
    • Create App on Stores
      • Creating App on Apple App Store
      • Creating App on Google Play Store
    • Mobile App Framework
      • Configuration
      • Framework
      • Project Structure
        • Structure
        • Data Containers
        • Pages
      • Dependency Integration
        • Plugins
        • Akinon Plugin Adapter
  • Akifast
    • HPP
      • Getting Started
      • Authorization
      • Payment Session Creation
        • Key Points Before Creating a Payment Session
        • Creating Payment Session
        • Redirecting to the Payment Page
        • Errors Encountered During Payment Session Creation
      • Merchant Services
        • Shipping Query URL
        • Agreement Query URL
        • Other URLs
  • B2B
    • Getting Started
    • B2B Setup
  • Adds-on
    • Invoicer
      • Introduction
      • Invoice & Pay On Delivery Service
  • Channel App Template
    • Introduction
    • Installation and Usage
    • Development Steps
      • Folder Structure
      • Starting Step
      • Encoding the Sales Channel
        • Introduction
        • Setup
        • Products
        • Product Price
        • Product Stock
        • Product Image
        • Orders
        • Product Data
      • Adding a New Command to Akinon
      • Listening for External Requests
    • Architecture
      • Introduction
      • Integration
      • Services (Flows)
        • Introduction
        • Product Service
        • Price Service
        • Stock Service
        • Image Service
        • Order Service
  • Multi Regional Settings
    • Multi Regional Settings
Powered by GitBook

© 2025 Akinon. All rights reserved.

On this page
  • Example Cases​
  • Recommended Usage Example: Colors​
  • Color Usage​
  • Primary & Secondary Color​
  • Theming​
  • Styling​
  • Customize Component Style​

Was this helpful?

  1. Project Zero
  2. Django

Theming & Styling

You can set all tailwind options in the tailwind/ directory.

If you want to override an option create a Javascript file under the tailwind/ folder or if you want to extend an option create a Javascript file under the tailwind/extend folder with the same name as the option name. Properties must be specified with module.export in the file.

Example Cases​

  • If you want to override containers, create a container.js file under the tailwind/ folder.

  • If you want to extend heights, create a height.js file under the tailwind/extend folder.

Recommended Usage Example: Colors​

When you override colors in tailwind, it is recommended to use some rules. First of all, create colors.js file under the tailwind/ folder.

  1. Pick a color as ‘500’ #4169E1.

  2. Create colors (tint and shade) from 100 to 900.

        module.exports = { 
            royalblue: {  
                '100': '#8DA5ED',  
                '200': '#7A96EA',  
                '300': '#6787E7',  
                '400': '#5478E4',  
                '500': '#4169E1',  
                '600': '#3B5FCB',  
                '700': '#3454B4',  
                '800': '#2E4A9E',  
                '900': '#273F87'  
            }  
        };
  3. (Optional) You can add the “Default, hover, and foreground” options to your color. Add DEFAULT color as #4169E1 which is equal to ‘500’ and hover color as #2E4A9E which is equal to ‘800’.

        module.exports = {  
            royalblue: {
                DEFAULT: '#4169E1',
                hover: '#2E4A9E',
                foreground: '#FFFFFF',  
                '100': '#8DA5ED',  
                '200': '#7A96EA',  
                '300': '#6787E7',  
                '400': '#5478E4',  
                '500': '#4169E1',  
                '600': '#3B5FCB',  
                '700': '#3454B4',  
                '800': '#2E4A9E',  
                '900': '#273F87'  
            }  
        }

Finally we removed all tailwind default colors. Then placed our colors in to tailwind. But if we needed tailwind default colors too, we should be create the colors.js file under the tailwind/extend folder with the same content.

You can customize other options too, as in this example. Extend or overwrite it if you want.

Color Usage​

After editing your colors, you can use them in style files (*.scss) like below.

.myDiv {  
    // It will change div's background color;  
    @apply bg-royalblue-100 ... bg-royalblue-900;  
}  
  
.myText {  
    // It will change text's color;  
    @apply text-royalblue-100 ... text-royalblue-900;  
}  

or

.myDiv {  
    // You can also use like that if you add DEFAULT to your color  
    // In our case it's equal to @apply bg-royalblue-500;  
    @apply bg-royalblue;  
}  
  
.myText {  
    // You can also use like that if you add DEFAULT to your color  
    // In our case it's equal to @apply text-royalblue-500;  
    @apply text-royalblue;  
}

Primary & Secondary Color​

In project zero, two main colors are used and these colors are named as primary and secondary. By default, the primary colors are the shade of black and we use them to colorize the components. For example, if you want to change the color of the components, change the primary color section in tailwind/colors.js file as shown below.

module.exports = { 
    primary: {
        DEFAULT: '#4169E1',
        hover: '#2E4A9E',
        foreground: '#FFFFFF',  
        '100': '#8DA5ED',  
        '200': '#7A96EA',  
        '300': '#6787E7',  
        '400': '#5478E4',  
        '500': '#4169E1',  
        '600': '#3B5FCB',  
        '700': '#3454B4',  
        '800': '#2E4A9E',  
        '900': '#273F87'  
    }  
}

Theming​

In Project Zero, we used web components to create the components (pz-button, pz-input, pz-modal, etc.). You can see all components in the /templates/components/web-components folder. All pz-components have multiple theming options.

pz-button has an optional appearance attribute. You can assign ‘filled’, ‘outlined’, or ‘ghost’ to the appearance attribute. The default value of the appearance attribute is ‘filled’.

<pz-button appearance="filled">filled</pz-button>
<pz-button appearance="outlined">outlined</pz-button>
<pz-button appearance="ghost">ghost</pz-button>

Figure 1. pz-button appearance example.

Some attributes like size can be shared between components.. The size attribute is assignable to pz-button, pz-input, and pz-select. You can assign ‘xs’, ‘sm’, ‘md’, ‘lg’, ‘xl’, ‘2xl’, or ‘3xl’ to the size attribute. The default value of the size attribute is ‘md’.

<pz-input placeholder="test input" size="lg"></pz-input>  

<pz-select name="mySelect" size="lg">  
    <option value="test" selected>test</option>  
    <option value="test2">test2</option>  
<pz-select>

<pz-button size="lg">button</pz-button>

<pz-button>default md size button</pz-button>

Figure 2. The size attribute example.

Styling​

We are using a combination of BEM (Block Element Modifier) and ABEM (Atomic Block Element Modifier) CSS class naming convention that makes CSS easier to maintain.

block-name__element-name -modifier-name

Figure 3. The basic syntax of class naming convention.

For more explanation, let's create a simple HTML and SCSS file as an example of CSS naming.

<header class="content-header">
    <a class="content-header__back-button -disabled">
        <!-- -->
    </a>
    <div class="content-header__body">
        <!-- -->
    </div>
</header>

Figure 4. index.html file.

.a-content-header {  
    // other styles.  
      
    &__back-button {  
        // back-button element styles.  

        &.-disabled {  
            // back-button disabled modifier styles.  
        }  
    }  
      
    // other styles.  
}

Figure 5. Index.scss file.

In Project Zero, we have separate *.scss files to maintain styles for every page, widget and component.

/my-page  
├── index.html

├── index.scss

├── index.js

Figure 6. The basic structure of the page folder.

Customize Component Style​

In Project Zero, every component has its style file. You can edit style files according to your project requirements.

For example, if you want to add a rounded corner to the pz-button component, find the /button directory under the /templates/components/web-components and open the ‘index.scss’ file.

Add @apply rounded; to .pz-button class.

.pz-button {  
    ...  
    @apply rounded;  
    ...  
}

Figure 7. Add rounded to pz-button.

After completing the style changes, all pz-buttons will have a 4px rounded corner.

References​

PreviousMasking & ValidationNextWidgets

Last updated 23 days ago

Was this helpful?

You can check the page for more of the theming options.

style guide
https://tailwindcss.com/docs
https://css-tricks.com/abem-useful-adaptation-bem/
https://imarc.github.io/boilerplate-components/pattern-library/docs/abem.html
https://demo.akinon.net/styleguide