Theme System. Wisej Themes 1 OVERVIEW

Similar documents
DDR & jquery More than just hover & dropdown

Cracked IntegralUI Studio for Web all pc software ]

HCA Tech Note 120. Configuring the Control UI Home Page. Option 1: HCA constructs the home page

Kendo UI. Builder by Progress : Using Kendo UI Designer

PowerPoint Slide Basics. Introduction

Installation and Activation of Foody pro theme

Unveiling the Basics of CSS and how it relates to the DataFlex Web Framework

Frontend UI Training. Whats App :

Theme Editor User Manual by nop4you.com

Web AppBuilder for ArcGIS Dive Into Mobile Development. Yiwei Ma & Kevin Gao

Style, Themes, and Introduction to Material Design

Etanova Enterprise Solutions

Installation How to use?

Client Configuration Cookbook

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

User Guide. Version 1.0

PlayerLync Forms User Guide (MachForm)

Organizational Charts

widgetjs Documentation

Web Development. With PHP. Web Development With PHP

Deep Dive on How ArcGIS API for JavaScript Widgets Were Built

Jahia Studio JAHIA DOCUMENTION

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx

Apex 5.1 Interactive Grid and Other New features

Client Configuration Cookbook

SharePoint Online. An Introduction. IT Unit July 7, 2017 Dustin Moore V. 1.0

Css Manually Highlight Current Link Nav Link

CS-Studio Display Builder

Introducing Motif. Motif User s Guide 1

1.1 Customize the Layout and Appearance of a Web Page. 1.2 Understand ASP.NET Intrinsic Objects. 1.3 Understand State Information in Web Applications

PowerPoint Introduction. Video: Slide Basics. Understanding slides and slide layouts. Slide Basics

HTML5 and CSS3 for Web Designers & Developers

Genesys Pulse Deployment Guide. Genesys Pulse User Interface Extensions

DIVI PERSON MODULE TEMPLATE 15

GMAIL BEGINNERS GUIDE

User Set-up - AutoCAD. Version 2015

ORB Education Quality Teaching Resources

Carrara Enhanced Remote Control (ERC)

Infragistics ASP.NET Release Notes

Siteforce Pilot: Best Practices

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

Episode 298. Getting Started With Spree

CSE 530A. B+ Trees. Washington University Fall 2013

ADOBE 9A Adobe Dreamweaver CS4 ACE.

PEGACUIS71V1 pegasystems

Ninja Menus extension for Magento 2

Pathway Tools Website Customization

Week 5 Creating a Calendar. About Tables. Making a Calendar From a Table Template. Week 5 Word 2010

2. Write style rules for how you d like certain elements to look.

Trees. Carlos Moreno uwaterloo.ca EIT

jquery Cookbook jquery Community Experts O'REILLY8 Tokyo Taipei Sebastopol Beijing Cambridge Farnham Koln

Lesson 5 Introduction to Cascading Style Sheets

Architectural Engineering Senior Thesis CPEP Webpage Guidelines and Instructions

I need two demo sites. And I need them in two days

Ignite UI Release Notes

Bluehost and WordPress

SALIENT USER GUIDE. 1 Page 1

Navigation Menu Pro Extension

1. Beginning (Important)

truechart Menubar Documentation HighCoordination GmbH Version 1.0.2,

Amory WordPress Theme

Magento Pinterest Extension User Guide

IBM Forms V8.0 Custom Themes IBM Corporation

BASICS OF TELERIK R.A.D.CONTROLS SKINNING

Dataflow Editor User Guide

Static Webpage Development

Hands On: Dreamweaver CS3 NEW SPRY Widgets

Web Recruitment Module Customisation

Objective % Select and utilize tools to design and develop websites.

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

Dartmouth College Computer Science 10, Fall 2014 Solution to Final Exam A

IN4MATX 133: User Interface Software

MATRIX Release Notes 6.1

Touring the Mac S e s s i o n 4 : S A V E, P R I N T, C L O S E & Q U I T

Font Awesome Icon User Guide

Scaling DreamFactory

NetAdvantage for jquery Release Notes

Mega Menu - Magento 2 USER MANUAL MAGEDELIGHT.COM

Product Page PDF Magento Extension

Configuring MiServer MiServer 3.0

IEEE Wordpress Theme Documentation

Introduction to CSS. 2 Sep 13. Derek Peacock. An introduction to defining CSS style rules using tags, classes and ids.

ArcGIS Pro SDK for.net: Advanced User Interfaces in Add-ins. Wolfgang Kaiser

COMSC-031 Web Site Development- Part 2

CST272 Getting Started Page 1

It is necessary to follow all of the sections below in the presented order. Skipping steps may prevent subsequent sections from working correctly.

iperceptions Comment Card Methodology

NetAdvantage for ASP.NET Release Notes

XML Tutorial. NOTE: This course is for basic concepts of XML in line with our existing Android Studio project.

Microsoft FrontPage. Microsoft Frontpage was designed to allow novice users to create and edit web pages without knowing any HTML.

WEB DESIGNING COURSE SYLLABUS

Zen Garden. CSS Zen Garden

Chapter 9. Web Applications The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill

Getting Started Guide

KonaKart Shopping Widgets. 3rd January DS Data Systems (UK) Ltd., 9 Little Meadow Loughton, Milton Keynes Bucks MK5 8EH UK

Introduction to HTML & CSS. Instructor: Beck Johnson Week 2

Introduction to ClientTrack 15 for PA HMIS

SmartTheme Manual 1 Last update: 2017/07/29 OptimizePress

EXPLORE MODERN RESPONSIVE WEB DESIGN TECHNIQUES

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager

Transcription:

Theme System 1 OVERVIEW Wisej theme system is quite sophisticated and goes beyond simple CSS or SASS. This document is only a short overview to get you started. The full documentation will be ready at some point during the beta period and before the final release. In a nutshell, themes in Wisej are single JSON files that define colors, images, fonts, and appearances. Appearances are group of styles and properties organized by a key name and by state (default, pushed, hovered, horizontal, ) that are applied to the widgets that decide to use a specific appearance. For example, the Wisej.Web.Button control naturally uses the button appearance. In the JSON file appearances\button is a map of states, each state holds styles and properties. Styles correspond to CSS rules (classes) while Properties correspond to actual properties on the JavaScript widget. While styles are limited by CSS, properties are unlimited and depend on the widget itself. 1.1 CHILD COMPONENTS Wisej JavaScript widgets are usually complex widgets containing other widgets (e.g. the button widget contains an image widget and a label widget) and the theme system has to be able to style the main widget and all its children since they are an integral part of the widget. Child components are themed as components in the parent appearance, each component contains styles and properties and more components. This recursion can go very deep. For example, to theme the image component in a button, the appearance path is \appearances\button\components\icon.

1.2 INHERITANCE Many styles and properties set on a specific appearance would do well on others, especially when a widget (like the label for example, or the image) is used many times as a child widget to compose more complex controls. In fact, it is not necessary to theme a child widget if its default appearance is good enough. To simplify the definition and manageability of the themes, Wisej support inheritance between appearances. A child component can specify that it wants to inherit all the styles and properties from another appearance and simply override or add some. The inheritance system can also be used to indirect certain theme features. The same way that images, colors and fonts are all indirected. In the themes that we provide, for example, we have defined two appearances named icon-dark and icon-light with certain styles and properties, then whenever a widget has child component that is an icon, it can simply set the inherit value to one of those two. When creating a new theme, we can simply change the theme of those two to change the entire theme. 1.3 CUSTOM THEMING Because of the extreme flexibility of the theme system, Wisej is capable of theming specific element in an application. All Wisej controls expose a property AppearanceKey, you can change that property to change the theme for a specific component. Then add a new appearance to the theme and you are now able to theme a specific part of your UI.

2 HOW TO USE THE ADDITIONAL THEMES The additional themes that we provide, or any custom theme that you build, can be used quite easily simply by loading the theme file in the designer, to see it at design time, and in Web.config to select the theme at runtime. 2.1 USE A CUSTOM THEME AT DESIGN TIME With the designer open, you can select the theme using the list control in our designer strip. The list automatically includes: all the build-in themes + all the *.theme files found in the \Themes directory in the current project. To load a theme not in the list, click the folder button to select any theme file from any location. Note that the theme that you select in the designer is only used by the designer. It will not change the theme used at runtime. 2.2 SET THE DEFAULT RUNTIME THEME You can change the default theme used at runtime in Web.config using the Wisej.DefaultTheme application setting Change the value using only the theme name, without the extension or path. Wisej will load the theme from the embedded resources or the \Themes path in your application.

Once the theme is changed in Web.config it will also be the default theme when you open a new designer. Default Theme Override Wisej uses the default theme the one specified in Web.config when the property theme in the application configuration JSON file is not set. If you add the theme property to Default.json or {ApplicationName}.json in case you have multiple sub-applications in the same project, that is the theme that Wisej will use, overriding the default setting from Web.config. 2.3 CHANGE THE THEME AT RUNTIME To change the theme at runtime, use the Application.LoadTheme() method. Unlike most other web theme systems, Wisej can change the theme dynamically without reloading the page. It will seamlessly recalculate all the borders, non-client areas, update the images, etc. In your code, when you want to change the theme, simply call: // Clear-2 can be changed to the name of your theme. Application.LoadTheme( Clear-2 ); 3 THEME MIXINS Mixins are a common concept used in JavaScript to merge a class on top of another class to add shared properties and methods. A class mixin is like an overlay on top of a class. We have applied the same concept to themes. Why? Usually any theme system (ASP.NET, jquery, or any CSS or SASS based system) defines a core set of styles for a defined set of components in a core list of themes. In our case we provide 4 built-in themes and several additional downloadable themes. However, if you want to add or change something to the theme - add a new component, or change a style or property you have to duplicate a base theme of your choice and change or add what you need. With themes limited to CSS you may be able to override certain rules but it quickly becomes very complicated to pin point all the things to override. In any case, once the root theme is duplicated and extended or modified you are stuck with the root theme.

Another scenario, very important for Wisej because of its open nature to integrations, is the development of extensions. Some new components may also need to be themed (see the Wisej.Web.Ext.Bubble example) but the extension developer cannot go back and modify all the existing themes and the future themes to add its own styles and properties. Here is where theme mixins are a great solution. The extension developer has to create only one partial theme specific to the new component and name it {theme name}.mixin.theme and place it as an embedded resource in the project. Wisej will automatically load all the mixin theme files and merge them with the selected base theme every time the application loads a theme, at design time too! A theme mixin can extend a theme add a new appearance, or color, or image and it can also override anything in the base theme, providing unmatched flexibility in Wisej Theme System.