Rupert  Beatty

Rupert Beatty

1676685180

A Lightweight & Powerful Library for App to Switching Themes Or Skins

SakuraKit

SakuraKit, is a lightweight and powerful library for application to switching themes or skins, inspired by SwiftTheme and DKNightVersion. Its provides chain and functional programming, that is more readable for your codes.

For Demo take a look at the SakuraDemo_OC, an iOS example project in the workspace. You will need to run pod install after downloading.

sakura mean theme as following. Now, sakura for your Apps.

中文介绍

Installation

There are three ways to use SakuraKit in your project:

Using CocoaPods

Manual

Using Carthage

CocoaPods

CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries in your projects.

Podfile

platform :ios, '8.0'
pod 'SakuraKit'

Manual

Download repo's zip, and just drag ALL files in the SakuraKit folder to your projects.

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage
    

To integrate SakuraKit into your Xcode project using Carthage, specify it in your Cartfile:

github "tingxins/SakuraKit"

Run carthage to build the frameworks and drag the SakuraKit.framework framework into your Xcode project.

Usage

Test Demo

x-sakura-kit-demo

Use Case

Here's an example, configure skins for UIButton as an example following.


UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    
button.sakura
.backgroundColor(@"Home.buttonBackgroundColor")
.titleColor(@"Home.buttonTitleColor", UIControlStateNormal);

Obviously, as the code show. it's just configure backgroundColor & titleColor of skin for a button. If you want to switch theme or skin for your apps. Just call this API use TXSakuraManager:


// name: name of a theme or skin.
// type: TXSakuraTypeMainBundle or TXSakuraTypeSandBox
+ (BOOL)shiftSakuraWithName:(TXSakuraName *)name type:(TXSakuraType)type;

For lines of code above. You may be puzzled by some literals, such as Home.buttonBackgroundColor or Home.buttonTitleColor. Do not worry about, we will focus on how to set up a profile for sakura step by step later.

Sakura Profile

Now, let's focus on profile. In brief, profile is a simple way to manage theme or skin for your application setting in a project. (Actually, sakura profile is just likes localizing your app.)

SakuraKit supports both .json & .plist format of file. For .json file example. you may should do configure like this:

{
    "Home":{
            "buttonBackgroundColor":"#BB503D",
            "buttonTitleColor":"#4AF2A1"
        }
}

as show above, we can know that literals of Home.buttonBackgroundColor and Home.buttonTitleColor is just a KeyPath for dictionary. SakuraKit always fetch value from Profile switching theme or skin for your app, such as color/iconName/text/fontSize.e.g.

Precautions:

  1. Each theme has its own Profile, including MainBundle and Sandbox themes. (MainBundle default theme named default, and its profile named default.json).
  2. The theme name is the same as the name of profile. For example. If a theme called fish, then the corresponding profile should be named fish.json. (Recommended to comply with this agreement)
  3. Different mainBundle theme(Local theme) need be distinguish for icon name. For different sandbox theme(Remote theme), icon name should be the same.

Bundle Theme

Bundle themes are exists in your app bundle. we also called Local Theme. we should always configure a default theme for app. of course, SakuraKit can add multi bundle themes for your app following these steps:

Step 1

First, create [SakuraName].json profile. be sure that the SakuraName is your theme name. For example, if you want to add a new bundle theme which named typewriter, then the corresponding profile should be named typewriter.json.

Step 2

Next, configure icons for typewriter theme. And name of icons need be distinguish with other local theme. For example. If an icon named cm2_btm_icn_account in default theme, then the corresponding icon in typewriter theme should be named like this cm2_btm_icn_account_xxx.

Step 3

After Step 1 & 2. you may should register all local sakura theme in AppDelegate. (default theme can be ignored.)


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Coding ...
    
    [TXSakuraManager registerLocalSakuraWithNames:@[@"typewriter"]];
    
    // Coding ...
    
    return YES;
}

Step 4

At this point, we have configured all Bundle themes. we can switching to these themes any time now. For example. If you want switching to a specified bundle theme which named typewriter. Just call API like this:


[TXSakuraManager shiftSakuraWithName:@"typewriter" type:TXSakuraTypeMainBundle];
    

Sandbox Theme

Sandbox themes, using compressed package(.zip) with a folder, which contains Profile & Icons. And we also called Remote Theme. The user can downloads via the network from server. Server can uploading multi themes dynamic, and then user can downloads from app.

About remote theme data format suggestion, give an example:(FYI)


{
    "name": "I'm a monkey",
    "sakuraName": "monkey",
    "url": "http:\\image.tingxins.cn\sakura\monkey.zip"
}

sakuraName is your theme name. And url is a remote url address of sakura theme. (Note: If the sakuraName field passed nil, the name of the corresponding theme will default to the name of downloaded package.)

When the remote theme has been downloaded, we can switching the theme like this:


[TXSakuraManager shiftSakuraWithName:sakuraName type:TXSakuraTypeSandBox];

About some exciting for you. SakuraKit also provides some API that you can used to download the remote theme. And supports both Block & Delegate callback. Very awesome, right? And of course, you can also customize your own download operation for remote theme.

Let's talk about it now.

Block Handler

If you want to download a sakura theme. You can call the download task block API like this. Show the code of Use-Case:


[[TXSakuraManager manager] tx_sakuraDownloadWithInfos:sakuraModel downloadProgressHandler:^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
    // Sakura theme download progress callback
} downloadErrorHandler:^(NSError * error) {
    // Sakura theme download error callback
} unzipProgressHandler:^(unsigned long long loaded, unsigned long long total) {
    // Unzip sakura theme compressed package progress callback
} completedHandler:^(id<TXSakuraDownloadProtocol> infos, NSURL * location) {
    // completed callback
} ];

In this example, the object of sakuraModel conform to TXSakuraDownloadProtocol. You can check out SakuraDemo_OC for more details in DownloadSakuraController.

Delegate Handler

Step 1

If you want to download a sakura theme. You can call the download task delegate API like this :


[[TXSakuraManager manager] tx_sakuraDownloadWithInfos:sakuraModel delegate:self];

Step 2

Implement delegate methods that you need to.


// If download task of sakura theme is already exist or already exist in sandbox, this API will callback.
- (void)sakuraManagerDownload:(TXSakuraManager *)manager
                 downloadTask:(NSURLSessionDownloadTask *)downloadTask
                       status:(TXSakuraDownloadTaskStatus)status;

// completed callback
- (void)sakuraManagerDownload:(TXSakuraManager *)manager
                 downloadTask:(NSURLSessionDownloadTask *)downloadTask
                  sakuraInfos:(id<TXSakuraDownloadProtocol>)infos
    didFinishDownloadingToURL:(NSURL *)location;

// Sakura download progress callback
- (void)sakuraManagerDownload:(TXSakuraManager *)manager
                downloadTask:(NSURLSessionDownloadTask *)downloadTask
                didWriteData:(int64_t)bytesWritten
           totalBytesWritten:(int64_t)totalBytesWritten
   totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite;

/** Reserved for future use */
- (void)sakuraManagerDownload:(TXSakuraManager *)manager
                downloadTask:(NSURLSessionDownloadTask *)downloadTask
           didResumeAtOffset:(int64_t)fileOffset
          expectedTotalBytes:(int64_t)expectedTotalBytes;

//  Sakura theme download error callback
- (void)sakuraManagerDownload:(TXSakuraManager *)manager
                 sessionTask:(NSURLSessionTask *)downloadTask
        didCompleteWithError:(nullable NSError *)error;

// Unzip sakura theme compressed package progress callback
- (void)sakuraManagerDownload:(TXSakuraManager *)manager
                 downloadTask:(NSURLSessionDownloadTask *)downloadTask
                progressEvent:(unsigned long long)loaded
                        total:(unsigned long long)total;

You can check out SakuraDemo_OC for more details in AppDelegate.

Custom Handler

If you do not want use API to download the remote theme that SakuraKit provided, you can customize your own download operation for sakura theme.

Show the code that you want:


// `sakuraModel` conform to `TXSakuraDownloadProtocol`. location is theme compressed package path that downloaded。
[[TXSakuraManager manager] tx_generatePathWithInfos:sakuraModel downloadFileLocalURL:location successHandler:^(NSString *toFilePath, NSString *sakuraPath, TXSakuraName *sakuraName) {
                  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

      BOOL isSuccess = [SSZipArchive unzipFileAtPath:toFilePath toDestination:sakuraPath delegate:self];

      // Note: Be sure that call this API to format theme path if you are customize your own download operation. otherwise, when switching theme you may be failed.
       [TXSakuraManager formatSakuraPath:sakuraPath cleanCachePath:toFilePath];
      
      dispatch_sync(dispatch_get_main_queue(), ^{
          if (isSuccess) {
              [TXSakuraManager shiftSakuraWithName:sakuraName type:TXSakuraTypeSandBox];
          }
      });
   });
} errorHandler:^(NSError * _Nullable error) {
   NSLog(@"errorDescription:%@",error);
}];

FQA

Q: Why do each theme has its own profile?

A: Because each theme, beside the name of icons are the same, and different themes background color, font size may not be the same. So each theme should have its own profile, unless you just want to making theme only for icons.

Q: Why is the sakura name should be consistent with the profile name of corresponding theme?

A: This is only a convention for us. when switching theme, SakuraKit will through the theme name to find the theme in the local or in the sandbox path, making both theme and profile name the same, you will reduce some unnecessary workload.

Q: What is the difference between bundle and sandbox themes?

A: Actually. Bundle theme, we called the local theme. Remote theme also called sandbox theme.

Q: Do SakuraKit have a version that written in Swift?

A: No. Will Coming soon. If you are really need it now. Here's an example for Using Swift with SakuraKitOC. (SakuraKitOCForSwiftDemo)

Communication

Absolutely,you can contribute to this project all the time if you want to.

If you need help or ask general question, just @tingxins in Weibo or Twitter, of course, you can access to my blog.

If you found a bug, just open an issue.

If you have a feature request, just open an issue.

If you want to contribute, fork this repository, and then submit a pull request.

Download Details:

Author: Tingxins
Source Code: https://github.com/tingxins/SakuraKit 
License: MIT license

#swift #theme #font #color #skin 

A Lightweight & Powerful Library for App to Switching Themes Or Skins
Gordon  Taylor

Gordon Taylor

1675993140

Light and Dark Theme with Custom Color With Flutter Theming

What is Flutter Theming?

A theme is a generic styling element that represents the overall style, look, and feel of your application. When you wish to modify your Flutter app theme, say for eg. from Flutter Dark mode to Flutter Light mode or vice-versa, it is known as Flutter theming.

There are many articles available on Flutter theming, showing how to implement Flutter theme Dark Light in projects using the default App Theme and their default Colors attribute. But in the live project, we are required to add our custom Color for our app branding.

In this blog, we will be sharing how to create a flutter custom theme step by step

create a flutter custom theme

Step-by-Step Guide for Flutter Theming with Custom Color

To successfully implement Flutter theming, you will have to take care of the following prerequisites:

  • Create flutter project
  • Add riverpod package in yaml (Note: You can use any state management packages base on your convenient)

Once you are ready to go ahead, execute the following steps consecutively for enabling custom Flutter theming.

Step 1: Create Light/Dark Theme

For creating a theme for light and dark mode, we use ThemeData class and customize colors and other properties based on needs. We have created one method for getting ThemeDate based on selected light/dark themes.

We give different values for scaffoldBackgroundColor, bodyColor, thumbColor, listTileTheme, and appBarTheme based on the selected theme.

ThemeData getAppTheme(BuildContext context, bool isDarkTheme) {
  return ThemeData(
    scaffoldBackgroundColor: isDarkTheme ? Colors.black : Colors.white,
    textTheme: Theme.of(context)
        .textTheme
        .copyWith(
          titleSmall:
              Theme.of(context).textTheme.titleSmall?.copyWith(fontSize: 11),
        )
        .apply(
          bodyColor: isDarkTheme ? Colors.white : Colors.black,
          displayColor: Colors.grey,
        ),
    switchTheme: SwitchThemeData(
      thumbColor: MaterialStateProperty.all(
          isDarkTheme ? Colors.orange : Colors.purple),
    ),
    listTileTheme: ListTileThemeData(
        iconColor: isDarkTheme ? Colors.orange : Colors.purple),
    appBarTheme: AppBarTheme(
        backgroundColor: isDarkTheme ? Colors.black : Colors.white,
        iconTheme:
            IconThemeData(color: isDarkTheme ? Colors.white : Colors.black54)),
  );
}

Step 2: Create Provider for Theme State Using River-pod

We will use river-pod to manage the app theme state. We only want to store bool value to manage light or dark themes so we will use StateProvider.

final appThemeProvider = StateProvider<bool>((ref) => false);

Step 3: Use Theme in App

We use river-pod in the project so we have to wrap MyApp with ProviderScope to access all providers though-out app. MyApp extends ConsumerWidget so we can get the WidgetRef object in the build method and access any river-pod using the ref variable. getAppTheme(context, ref.watch(appThemeProvider)) method listens to any change in the app theme and updates the app accordingly.

class MyApp extends ConsumerWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return MaterialApp(
      title: 'Flutter Light/Dark Theme',
      debugShowCheckedModeBanner: false,
      theme: getAppTheme(context, ref.watch(appThemeProvider)),
      home: const MyHomePage(),
    );
  }
}

ref.read(appThemeProvider.notifier).state = value. We are updating the theme state in appThemeProvider when the switch state is changed from light/dark mood.

Switch(
  activeColor: Colors.orange,
  onChanged: (value) {
    ref.read(appThemeProvider.notifier).state = value;
  },
  value: isDarkMode )

Step 4: Add Custom Color

It works fine as far as it will show the same color in all icons and texts. If we want to use different colors on icons, we have to create an extension for the Theme. Create a class and extend with ThemeExtension and add necessary fields that you want to customize.

class AppColors extends ThemeExtension<AppColors> {
  final Color? color1;
  final Color? color2;
  final Color? color3;

  const AppColors({
    required this.color1,
    required this.color2,
    required this.color3,
  });

  @override
  AppColors copyWith({
    Color? color1,
    Color? color2,
    Color? color3,
  }) {
    return AppColors(
      color1: color1 ?? this.color1,
      color2: color2 ?? this.color2,
      color3: color3 ?? this.color3,
    );
  }

  @override
  AppColors lerp(ThemeExtension<AppColors>? other, double t) {
    if (other is! AppColors) {
      return this;
    }
    return AppColors(
      color1: Color.lerp(color1, other.color1, t),
      color2: Color.lerp(color2, other.color2, t),
      color3: Color.lerp(color3, other.color3, t),
    );
  }
}

Now add this extension attribute in ThemeData in our create method getAppTheme and define the theme according to colors.

extensions: <ThemeExtension<AppColors>>[
  AppColors(
    color1: isDarkTheme ? Colors.blue : Colors.blueGrey,
    color2: isDarkTheme ? Colors.pink : Colors.pinkAccent,
    color3: isDarkTheme ? Colors.yellow : Colors.limeAccent,
  ),

Create another extension function which we use to access custom color easily.

AppColors colors(context) => Theme.of(context).extension<AppColors>()!;

We can access these colors in the widget simply using colors(context).color1. If we do not specify the Icon color, it will fetch the color from listTileTheme.

ListTile(
    leading: Icon(Icons.chat_outlined, color: colors(context).color3),
    title: Text( "Help Center", style: Theme.of(context).textTheme.titleSmall),
 ),
ListTile(
    leading: const Icon(Icons.notifications),
    title: Text("Notification", style: Theme.of(context).textTheme.titleSmall),
),

Step 5: Full Source Code

Here is the code for theme class:

import 'package:flutter/material.dart';

AppColors colors(context) => Theme.of(context).extension<AppColors>()!;

ThemeData getAppTheme(BuildContext context, bool isDarkTheme) {
  return ThemeData(
    extensions: <ThemeExtension<AppColors>>[
      AppColors(
        color1: isDarkTheme ? Colors.blue : Colors.green,
        color2: isDarkTheme ? Colors.pink : Colors.blue,
        color3: isDarkTheme ? Colors.yellow : Colors.red,
      ),
    ],
    scaffoldBackgroundColor: isDarkTheme ? Colors.black : Colors.white,
    textTheme: Theme.of(context)
        .textTheme
        .copyWith(
          titleSmall:
              Theme.of(context).textTheme.titleSmall?.copyWith(fontSize: 12),
        )
        .apply(
          bodyColor: isDarkTheme ? Colors.white : Colors.black,
          displayColor: Colors.grey,
        ),
    switchTheme: SwitchThemeData(
      thumbColor: MaterialStateProperty.all(
          isDarkTheme ? Colors.orange : Colors.purple),
    ),
    listTileTheme: ListTileThemeData(
        iconColor: isDarkTheme ? Colors.orange : Colors.purple),
    appBarTheme: AppBarTheme(
        backgroundColor: isDarkTheme ? Colors.black : Colors.white,
        iconTheme:
            IconThemeData(color: isDarkTheme ? Colors.white : Colors.black54)),
  );
}

@immutable
class AppColors extends ThemeExtension<AppColors> {
  final Color? color1;
  final Color? color2;
  final Color? color3;

  const AppColors({
    required this.color1,
    required this.color2,
    required this.color3,
  });

  @override
  AppColors copyWith({
    Color? color1,
    Color? color2,
    Color? color3,
  }) {
    return AppColors(
      color1: color1 ?? this.color1,
      color2: color2 ?? this.color2,
      color3: color3 ?? this.color3,
    );
  }

  @override
  AppColors lerp(ThemeExtension<AppColors>? other, double t) {
    if (other is! AppColors) {
      return this;
    }
    return AppColors(
      color1: Color.lerp(color1, other.color1, t),
      color2: Color.lerp(color2, other.color2, t),
      color3: Color.lerp(color3, other.color3, t),
    );
  }
}

Here is code of our main screen:

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:light_dark_mode/provider%20/app_theme_provider.dart';
import 'package:light_dark_mode/utils/app_theme.dart';

void main() {
  runApp(const ProviderScope(child: MyApp()));
}

class MyApp extends ConsumerWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return MaterialApp(
      title: 'Flutter Light/Dark Theme',
      debugShowCheckedModeBanner: false,
      theme: getAppTheme(context, ref.watch(appThemeProvider)),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends ConsumerWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    var isDarkMode = ref.watch(appThemeProvider);
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
        leading: const Icon(Icons.arrow_back_ios_sharp),
        actions: const [
          Padding(
            padding: EdgeInsets.symmetric(horizontal: 15.0),
            child: Icon(Icons.add_circle_outline),
          )
        ],
      ),
      body: Padding(
        padding: const EdgeInsets.symmetric(horizontal: 8.0),
        child: ListView(
          children: [
            CircleAvatar(
              radius: 60,
              backgroundColor: Colors.grey,
              child: Padding(
                padding: const EdgeInsets.all(1), // Border radius
                child: ClipRRect(
                    borderRadius: BorderRadius.circular(60),
                    child: Image.asset(
                      "assets/ic_profile.jpeg",
                      fit: BoxFit.fill,
                      width: 120,
                      height: 120,
                    )),
              ),
            ),
            Container(
              margin: const EdgeInsets.only(top: 10, bottom: 60),
              alignment: Alignment.center,
              child: Text(
                "Testing User",
                style: Theme.of(context).textTheme.titleLarge,
              ),
            ),
            ListTile(
              leading: Icon(isDarkMode ? Icons.brightness_3 : Icons.sunny),
              title: Text(
                isDarkMode ? "Dark mode" : "Light mode",
                style: Theme.of(context).textTheme.titleSmall,
              ),
              trailing: Consumer(builder: (context, ref, child) {
                return Transform.scale(
                  scale: 0.7,
                  child: Switch(
                    activeColor: Colors.orange,
                    onChanged: (value) {
                      ref.read(appThemeProvider.notifier).state = value;
                    },
                    value: isDarkMode,
                  ),
                );
              }),
            ),
            ListTile(
              leading: Icon(Icons.grid_on_sharp, color: colors(context).color1,),
              title: Text(
                "Story",
                style: Theme.of(context).textTheme.titleSmall,
              ),
            ),
            ListTile(
              leading: Icon(Icons.settings, color: colors(context).color2),
              title: Text("Settings and Privacy",
                  style: Theme.of(context).textTheme.titleSmall),
            ),
            ListTile(
              leading: Icon(Icons.chat_outlined, color: colors(context).color3),
              title: Text(
                "Help Center",
                style: Theme.of(context).textTheme.titleSmall,
              ),
            ),
            ListTile(
              leading: const Icon(Icons.notifications),
              title: Text(
                "Notification",
                style: Theme.of(context).textTheme.titleSmall,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

You can find full code here: GitHub Repository.

Conclusion

I hope this blog will help to customize your Flutter app theme. In this blog we customized Colors in ThemeExtension; however, we can use any field to customize the value. Flutter theming is just one aspect, there are several other solutions that we provide and you can find those on Flutter tutorials.

Original article source at: https://www.bacancytechnology.com/

#flutter #theme 

Light and Dark Theme with Custom Color With Flutter Theming
Coder Tutorial

Coder Tutorial

1675608930

Building an User Profile Card Design Using HTML & CSS

https://youtu.be/flFri46Iu2w

#html #css #theme #webdesign #ui 

🌍Please visit https://www.codertutorial.com for more such articles.

Please like, share and subscribe if you found this video helpful.

Building an User Profile Card Design Using HTML & CSS

Best 11 Excellent WordPress Themes

Have you been trying to find the best WordPress theme to create a website that perfectly matches your brand and vision?

Creating such a website today is no longer the complicated process you once had to leave up to programmers to do. Now, with the WordPress platform, it is possible to create and design your site. There are thousands of excellent WordPress themes to choose from.

Still, finding the best WordPress theme for your needs is not easy. The hunt to find the perfect WordPress theme can test your patience to the limits.

Finding the right WordPress theme for your website can be a game-changer and a career-changer. You can start a website from scratch or considering upgrading an existing one. But, a good WordPress theme can attract user’s attention to your website and your business.

We’ve greatly simplified your search. We’ve scoured through all the popular WordPress themes and listed what we consider the best.

1. Be – Multipurpose WordPress Theme

Be MultiPurpose WordPress Theme

This powerful multipurpose WordPress theme is among the best in the business in terms of popularity – 250,000+ users, and size – 40+ core features including a 650+ pre-built website library, a wealth of design elements and options, and the most advanced page and website building tools on the market.

The website-building goodies this multipurpose WordPress theme places at your fingertips include –

  • Be Builder, the fastest, lightest, and most intuitive website builder for WordPress. Its impressive page-building capabilities feature the ability to view each element while customizing it.
  • Be Builder Blocks – a constantly growing library of pre-built sections.
  • Be Builder Woo – that gives you a simple way to design an online store packed with customer-centric shopping features like product previews, cart, checkout, etc.
  • Be Theme’s Header Builder 2.0 with 14 pre-build headers that include mobile-ready headers and interactive headers.

A setup wizard and helpful tutorial comes with the package and be sure to check out this Live Demo to see the Be Builder’s stunning capabilities.

2. Total WordPress Theme

Total WordPress Theme

With its seemingly endless number of design options, customizer settings, layout choices, and navigation options, coupled with dynamic template functionality, and the popular WPBakery frontend drag and drop page builder gives this WordPress theme’s users total flexibility to build attractive and engaging websites any way they want.

  • Total’s page builder blocks and extra modules, post entry cards, animations, layout options, and custom backgrounds make website building a quick and satisfying experience.
  • Total is fully integrated with WooCommerce, features developer-friendly code, and is RTL and translation ready.
  • Slider Revolution is included, and Total is compatible with most other popular plugins such as bbPress, Uber Menu, Easy Digital Downloads, and WPML to name a few.

“Build it your way.” could serve as this aptly named theme’s slogan. Click on the banner to learn more about everything that has delighted Total’s 48,000 users.

3. Blocksy Free Ecommerce WordPress Theme

Blocksy Free Ecommerce WordPress Theme

Blocksy was built with flexibility, extensibility, and speed as its three major priorities. The result is a WordPress theme that gives you the power to easily create and make changes to the appearance and functionality of your website as you build it.

These priorities find their way into Blocksy’s key features such as –

  • Blocky’s easy to use options interface, advanced WooCommerce integration, and integration with Gutenberg, Elementor, Brizy & Beaver, and Tutor LMS all provide a wealth of design approaches.

Other significant features include –

  • a Header Builder that comes with many customized elements
  • a Footer Builder with elements that include a menu, social icons, and a widget area.
  • 5 types of Content Blocks

Best of all? Blocksy is free! Click on the banner and check it out. There is a Pro version as well, but the free version has plenty to offer.

4. Uncode – Creative & WooCommerce WordPress Theme

Uncode - Creative & WooCommerce WordPress Theme

With Uncode’s Creative and WooCommerce theme in your web design toolbox there is no limit to what you can build in the way of attractive and engaging websites and online stores.

You’ll have at your fingertips –

  • Uncode’s advanced Drag & Drop Product Builder, performant configurable Ajax product filters with variations, swatches, and impressive Shop layouts
  • 70+ Carefully crafted importable pre-made designs that can be mixed and matched, and 500+ Wireframes carefully designed section templates.

 

5. TheGem – Creative and WooCommerce WordPress Theme

TheGem - Creative and WooCommerce WordPress Theme

With TheGem creative WordPress theme you can rise above the competition with its creative modern layouts, fastest loading times, and easy-to-use tools for building a professional website at (seemingly) the speed of light.

Key features include –

  • 400+ pre-built one-click importable websites
  • Theme Builder for building headers, footers, products, popups, etc. in Elementor or WPBakery
  • TheGem Blocks collection of 600+ pre-built page sections  
  • Extended WooCommerce features for building pixel-perfect online shops.

6. Avada WordPress Theme

Avada WordPress Theme

Avada, the ultimate WordPress theme and website builder, is the #1 best-selling WordPress theme of all time with its more than 750,000 users.

  • Avada is built for speed and its impeccable code quality gives you high performance results.
  • Avada’s WooCommerce builder is ideal for creating shop, cart, checkout, and product layouts customized to suit your brand.
  • Avada design elements include 400+ pre-built web pages, 120+ design and layout elements in a 100% responsive framework.

7. Rey WordPress WooCommerce Theme

Rey WordPress WooCommerce Theme

The Rey WooCommerce theme takes building a WooCommerce site to the next level with its powerful Elementor and WooCommerce integrations coupled with WordPress’s sophisticated engine and the following key features:

  • an outstanding selection of pre-made designs with lifetime updates
  • a selection of Elementor widgets designed to cover almost any situation
  • Ajax Navigation and Filters to streamline your site’s page browsing and navigation functionality.

Rey is performance oriented, developer and SEO friendly, and responsive. 

8. Woodmart Woocommerce WordPress Theme 

Woodmart Woocommerce WordPress Theme

If eCommerce is your thing, you won’t go wrong by selecting WoodMart, ThemeForest’s highest-rated eCommerce theme. Customization options are unlimited and WoodMart’s drag and drop builder reduces workflows to a minimum.

Key features include –

  • 80+ pre-built websites
  • Shop and product page Elementor builders together with plenty of product page display options and Elementor custom checkout
  • A full AJAX shop with a valuable array of AJAX shop filters and product swatches.

9. Vault – Multi-Purpose Elementor WordPress Theme

Vault - Multi-Purpose Elementor WordPress Theme

Created with the future in mind, Vault features a multiplicity of design tools and design options in a single framework.

  • Start with Vault’s selections of 50+ full websites, 1200+ template blocks, and 230+ premium widgets.
  • add the next-generation Theme Options Panel with its beautiful interactions and animations.
  • Pull everything together with Vault’s interactive design tools and customization options.

And you’ll get: A modern and engaging website noted for its outstanding performance.

10. KnowAll – WordPress Knowledge Base Theme

KnowAll - WordPress Knowledge Base Theme

KnowAll is the most powerful WordPress theme on the market for building a high performance and easy to access and use knowledge base.

  • KnowAll’s advanced analytics provide valuable insights into how visitors are using your knowledge base.
  • KnowAll provides visitor feedback so you can get a better grasp on what content visitors find to be useful and engaging and identify and refine unhelpful articles.

11. Litho – WordPress Elementor Theme

Litho is a creative, modern, and highly customizable WordPress Elementor theme that is built with and fully compatible with Elementor, the world’s #1 free page builder.

  • Litho can be used to create any type of business niche, portfolio, blog and eCommerce website
  • Design elements and options include 37+ ready home pages, 200 plus creative elements and a library of 300 plus templates and the premium Slider Revolution plugin.
  • Online detailed documentation is included.

Each of these 11 excellent WordPress themes features high-quality designs. Also impressive selections of demos and pre-built layouts. A lot of templates, plenty of customization settings and options, too. It has genuinely useful features that will make your website serve its purpose effectively and efficiently.

These are highly popular WordPress themes for a reason. No matter which one you choose, you’ll be well on the way to creating an outstanding website.

Original article source at: https://www.sitepoint.com/

#wordpress #theme 

Best 11 Excellent WordPress Themes
Hunter  Krajcik

Hunter Krajcik

1673258650

Apex-ui: Apex Monochrome Atom Theme UI

Apex-ui

Apex monochrome Atom theme UI

Installation

$ apm install apex-ui

Screenshot

This variant:

Slim variant:

Links

Download Details:

Author: Apex
Source Code: https://github.com/apex/apex-ui 
License: MIT license

#atom #theme #editor 

Apex-ui: Apex Monochrome Atom Theme UI
Hunter  Krajcik

Hunter Krajcik

1672463700

Lucario: The Best Flat Theme for Vim, Atom, Sublime Text

The best colorful flat theme for your favorite editor and terminal emulator.

Color Palette

PaletteHexRGBHSLSample
Background#2b3e5043 62 80209.2° 30.1% 24.1%
Current Line#24344336 52 67209° 30.1% 20.2%
Selection#19242f25 36 47210° 30.6% 14.1%
Foreground#f8f8f2248 248 24260° 30% 96%
Comment#5c98cd92 152 205208.1° 53.1% 58.2%
String#e6db74230 219 11654.2° 69.5% 67.8%

Editors

Atom

Atom Example

  1. Go to Atom -> Preferences...
  2. Then select the Install tab
  3. Switch to the Themes
  4. Type Lucario in the search box

See Lucario in atom.io page

Jetbrains Editors

(Available for IntellijIDEA, Pycharm, Webstorm, PHPStorm and RubyMine)

Jetbrains Example

  1. Download Intellij/Lucario.jar
  2. Go to File -> Import Settings.
  3. In the Import File Location dialog box select your downloaded Intellij/Lucario.jar file.
  4. In the Select Components to Import dialog box select only Editor Colors as settings to be imported, and click OK.

Sublime Text

Sublime Example

Install using Package Control

If you are using Package Control, you can easily install Lucario via Package Control: Install Package. The package theme is named "Lucario Color Scheme" in the packages list.

Install manually

  1. Download Lucario.tmTheme
  2. Open Sublime text and click on Preferences -> Browse Packages
  3. Select your downloaded Lucario.tmTheme there

Activating the theme

You should be able to select lucario theme by browsing Preferences -> Color Scheme -> Lucario

Visual Studio Code

VS Code Example

  1. Go to View -> Command Palette or press Ctrl+Shift+P
  2. Then enter Install Extension
  3. Search for Lucario and install the extension.
  4. Open Command Palette, enter Preferences: Color Theme and select Lucario

Issues for the VS Code theme are tracked here.

Vim

Vim Example

  1. Download colors/lucario.vim
  2. Move the file to the ~/.vim/colors/ directory
  3. Add the following lines to your vimrc file:
syntax enable
set number
colorscheme lucario

OS X Hint: vim /usr/share/vim/vimrc

Xcode

xcode Example

  1. Download xcode/Lucario.dvtcolortheme
  2. Move the file to your Xcode FontAndColorThemes directory
  3. Reopen your Xcode and click on Xcode -> preferences
  4. Open Fonts & Colors tab and select lucario as your theme

Hint: run this command to move the Lucario.dvtcolortheme file to your Xcode FontAndColorThemes directory:

$ mv Lucario.dvtcolortheme ~/Library/Developer/Xcode/UserData/FontAndColorThemes/

Terminal Emulators

GNOME Terminal

GNOME Terminal Example

Since it is not possible to add color themes to GNOME Terminal, the provided script will create a new Profile which uses custom colors.

  1. Download gnome-terminal/lucario.sh
  2. Run the script from within GNOME Terminal (./lucario.sh)
  3. Right-click in the Terminal and select Profiles -> Lucario
  4. In the main menu select Edit -> Preferences
  5. Go to the Profiles tab and in the dropdown list for the default profile select Lucario

The script was created with terminal.sexy.

iTerm

iTerm Example

  1. Download iterm/Lucario.itermcolors
  2. Open Settings in iTerm
  3. Go to Profiles -> Colors tab
  4. Click Load Presets... to import and select the Lucario.itermcolors file

Terminal.app

Terminal Example

  1. Download terminal/Lucario.terminal
  2. Open Settings in Terminal
  3. Click "Gear" icon
  4. Click Import and select the Lucario.terminal file
  5. Click Default

Termux

Termux Example

  1. Make sure that Termux:Styling add-on is installed.
  2. Download termux/lucario.colors
  3. Replace the lucario.colors with ~/.termux/colors.properties.
  4. Rename lucario.colors to colors.properties.
  5. Restart Termux to apply.

Xfce Terminal

xfce4-terminal Example

  1. Save xfce4-terminal/lucario.theme to $HOME/.local/share/xfce4/terminal/colorschemes/ (You might need to create this folder first.)
  2. In Xfce Terminal open Preferences, go to the Colors tab and under Presets select Lucario.

XTerm

xterm Example

  1. Download xterm/.Xresources
  2. Either move the .Xresources file to your home directory or add the contents to your existing ~/.Xresources
  3. Run xrdb -merge ~/.Xresources
  4. (optional) Add xrdb -merge ~/.Xresources to your init scripts (e.g. .xinitrc)

Windows Terminal

Windows Terminal Example

  1. Open settings.json from Windows Terminal.
  2. Find the "schemes" array within it.
  3. Now, copy the JSON object present in lucario.json to "schemes" array in settings.json file.
  4. Apply the color scheme by setting "colorScheme": "Lucario" to your profile.

Others

CSS

CSS Example

Download CSS/lucario.css

Move the CSS/lucario.css file to your web directory

Include the stylesheet in your HTML by including the line

<link rel="stylesheet" type="text/css" href="lucario.css">

The default stylesheet with highlight code blocks is rendered with the class highlight.

Contributing

Want to use Lucario Color Scheme for your favorite editor, but it doesn't exist? So how about creating one? It's very simple! \o/

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :)

Download Details:

Author: Raphamorim
Source Code: https://github.com/raphamorim/lucario 
License: MIT

#atom #theme #xcode 

Lucario: The Best Flat Theme for Vim, Atom, Sublime Text
Hunter  Krajcik

Hunter Krajcik

1672444020

Seti-ui: A subtle dark colored UI theme for Atom

Seti UI

Seti-UI Theme, and VS Code icon pack

This repo contains the latest version of the Seti UI theme. It contains the default icons used in VS Code and the seti-ui theme for Atom.

The theme is a dark interface theme crafted especially for Atom, with subtle colors that are meant to be easy on the eyes. It includes custom file icons, and new user configurable settings. Seti Syntax is also available for all your code.

Adding File Icons

Given that changes to this repo are included in VS Code, we are somewhat conservative with adding new file icons because it can affect the performance for everyone. This means we only accept PRs for file icons for popular languages or toolsets. For example does your language/tool have package downloads or vscode extensions with tens of thousands of users? If no, then there's a possibility we will deny your pull request.

Adding an icon requires you have node and gulp installed.

Once you have these, you will need to open a terminal window, navigate to the seti-ui folder and run npm install (note you only need to do this once).

Icon Style:

  • Use a single color, the colors will be overwritten to one of the 9 below when shipped
  • You want to aim for a frame of 32x32 with the icon centered at and being about 18 x 18 big. There's a sketch file with examples in this repo.

Once everything is setup, follow these steps any time you want to add a new icon:

Create an SVG icon with the name of the language, and save it to the icons folder (do not use any spaces or special characters)

Open styles/components/icons/mapping.less and create a link for the icon you just added with the .icon-set mixin. Assuming you were adding an icon for Sass it might look something like this: .icon-set('.scss', 'sass', @pink)

The first parameter '.scss' is the file extension you want to target, the second parameter 'sass' is the name of the icon you just created, without the extension (sass.svg), and the last parameter @pink indicated what color the icon should be.

There are currently 9 supported icon colors:

- `@blue`
- `@grey`
- `@green`
- `@orange`
- `@pink`
- `@purple`
- `@red`
- `@white`
- `@yellow`

While, you can add additional colors to styles/ui-variables.less, but please do not do this unless you find it absolutely necessary. If you do add another color, please make sure that matches the general feel of the other colors. If you add something really bright or really pale, your pull request will likely be declined.

You will need to do this once for every extension, you want to target. For example, if you want to target both .sass and .scss extensions, you would add the following:

.icon-set('.sass', 'sass', @pink);
.icon-set('.scss', 'sass', @pink);
  1. Run gulp svg to minimize the svg files.

Previewing in VS Code

This is a bit of work, but the steps:

  1. Make your changes, and run gulp icon
  2. Clone VS Code, and make sure that it has the same parent as seti-ui
  3. Follow the VS Code instructions to set up a local dev copy
  4. Once you've confirmed that, you need to update the icons. cd to extensions/theme-seti and run node build/update-icon-theme.js
  5. Make sure that inside extensions/theme-seti/build/update-icon-theme.js - let FROM_DISK is set to true

Then, you can make you SVG changes, re-run gulp icon, node build/update-icon-theme.js and re-launch your dev copy of VS Code.

Please don't include the built files in your Pull Requests, because it can cause conflicts between PRs and we only need to do this during deploys otherwise.

Please Note: This is the Seti interface theme for Atom only

This is for the interface of the Atom editor. I also have Seti Syntax for theming the code view in Atom. In addition, there is a new Seti theme for Hyper.

If these are not the droids you're looking for, may I point you in the direction of these great ports:


What's New? 1.0 Update

Seti UI has been updated with a cleaner, more streamlined interface, a slightly tweaked color scheme, additional icons and new user settings, as well as a handful of other small ui improvements and a refactored code base.

Screenshot


More colors

Seti now has 8 theme colors to choose from: Screenshot


More icons

File icons will now show up in the file search (cmd+ p) dialog in addition to the side bar and tabs. This should make for easier grokking when you're searching for a file.

Screenshot


Settings

To get here, Go to "Atom > Preferences" Select "Themes" and click the settings icon next to "Seti" under UI Theme dropdown

With 1.0 you can now adjust some of the more commonly requested features directly in Atom's settings view (Settings > Themes > Click the gear icon next to Seti).

  • File Icons: Probably the most frequent request has been a simpler way to disable the file icons for those of you using other file icon packages. Now you can :)
  • Compact Mode : Seti 1.0's face-lift brings a cleaner, less cramped interface, which also happens to take up a bit more space. If you prefer the old more compact version, you can revert it here.
  • Ignored Files: By default, ignored files are shown as a muted grey. However, if you'd like to hide them altogether you can use this.
  • Hide Tabs: Lastly (for now), there have been a few requests to be able to hide tabs altogether. This is of course disabled by default, but if you're the anti-tab type, you can hide them here.

Screenshot

Setting are brand new, and still have a few kinks to be worked out. If you run into any problems with them, or would like to request an additional setting, please file an issue!


Bugs

If you find a bug, please do add a bug report. However, first make sure it is for Seti UI in Atom. I only support the Atom versions, please check the links above to report a bug on another platform.

Seti 1.0 has been optimized to work with Atom 1.6 and above:

Including the 1.7 beta

Most if not everything should work on older versions as well, but if you see something that doesn't look quite right, make sure you have the latest version of Atom installed before filling a bug.


Installation

The easiest way to install Seti is to do as follows:

  • Go to Atom > Settings
  • Click "+ Install"
  • Search for seti ui and click themes button to search.
  • Browse for Seti UI and click install

Alternatively you can use the Atom Package Manager:

apm install seti-ui

Contributing

Anyone is welcome to contribute to the development of this theme. If can be a lot of work to keep up on, and I'll take help wherever I can get it :)

1. Fork

If you're keen to contribute, start by forking the repo and cloning it to your computer.

Note: To use the development version, you must first uninstall the production version (apm uninstall seti-ui), then run the following commands:

# To install the local version as an Atom Theme
apm link .

# Open with dev mode:
atom --dev .

2. Make Some Changes

Once this is complete you will be able to edit seti files directly in Atom and see your changes in real time.

3. Create a Pull Request

Once you are satisfied, with your updates, commit your change, push them to your fork and submit a pull request with a description of the changes that you made.

4. Unlink

Once you're done working locally and ready to install the production version again, simply run apm unlink . from the root of the seti-ui project.


Deploying

Run npm publish


Current Icons

Screenshot


Custom App Icons

If you'd like a new app icon to match the look & feel of Seti, feel free to use one of these:

Screenshot Screenshot Screenshot

Download Details:

Author: jesseweed
Source Code: https://github.com/jesseweed/seti-ui 
License: MIT license

#atom #theme 

Seti-ui: A subtle dark colored UI theme for Atom
Hunter  Krajcik

Hunter Krajcik

1672436220

Atom One Dark theme for Terminal

Atom One Dark theme for Terminal

A theme for Terminal and iTerm that mimics the native One Dark Theme made by the Atom team. Also available in One Light.

Colors not working?

Colors are not enabled by default in macOS Terminal, so you will need to enable colors in order for this theme to work. To do this, append the following to your ~/.bashrc or ~/.zshrc file, then restart Terminal

export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad

This one line will do that for you. Copy and paste it into a Terminal window, hit return, then restart Terminal. For ~/.bashrc

echo -e '\n# Add colors to Terminal\nexport CLICOLOR=1\nexport LSCOLORS=ExFxBxDxCxegedabagacad' >> ~/.bashrc

or ~/.zshrc

echo -e '\n# Add colors to Terminal\nexport CLICOLOR=1\nexport LSCOLORS=ExFxBxDxCxegedabagacad' >> ~/.zshrc

Changelog

  • 1.0.3 - For One Dark, use the same color for "Black" as that used for the window background (#1E2127).
  • 1.0.2 - Using a brighter text color for the One Dark theme and remove transparency from backgrounds.
  • 1.0.1 - Using generic RGB for colors; 95% opaque backgrounds.
  • 1.0.0 - Added One Light theme; refined colors.
  • 0.7.1 - Added an alternate theme using a darker window color, based on the outer ui and not the editor space.
  • 0.7.0 - Update contrast to reflect One Dark Syntax 0.7.0
  • 0.5.0 - Update to lighter background and brighter colors to reflect One Dark Syntax 0.5.0

Screenshots

One Dark

Screenshot

One Light

Screenshot

Download Details:

Author: Nathanbuchar
Source Code: https://github.com/nathanbuchar/atom-one-dark-terminal 
License: ISC license

#atom #theme #terminal 

Atom One Dark theme for Terminal
Hunter  Krajcik

Hunter Krajcik

1672367280

Themer: A Set Of Colors and Generates Themes for Your Apps

themer   

themer takes a set of colors and generates editor themes, terminal themes, themes for other apps, and desktop/device wallpapers.

visual description

Installation

Don't love the command-line? Check out the Web UI.

mkdir my-dotfiles && cd my-dotfiles
npm install themer

If you do not keep your dotfiles under version control, you can simply install themer globally with npm -g install themer.

themer can also be used without installing, via npx—see example below.

Usage

Pass themer a color set, as many templates as you wish, and an output directory.

themer \
  --colors <npm package name OR file> \
  --template <npm package name OR file> \
  [--template <npm package name OR file>...] \
  --out <directory>

Your generated theme files, as well as a README on how to install them, will be written to the output directory.

themer can create themes from your custom color sets (see "Create your own color set" below) or from color sets published on npm (see @themerdev/colors-default). The same is true for templates.

Example workflow

Say you wanted to generate a vim theme and desktop background using themer's default color set. First, install themer, the color set, and the templates:

cd my-dotfiles
npm install themer @themerdev/colors-default @themerdev/vim @themerdev/wallpaper-block-wave

Then edit your package.json:

  ...
  "scripts": {
    "build": "themer -c @themerdev/colors-default -t @themerdev/vim -t @themerdev/wallpaper-block-wave -o gen"
  },
  ...

Then run your new script:

npm run build

Now check the gen/ folder for your generated themes. Here's the result:

example usage result

Example usage with npx

npx \
  -p themer \
  -p @themerdev/colors-default \
  -p @themerdev/vim \
  -p @themerdev/wallpaper-block-wave \
  themer \
  -c @themerdev/colors-default \
  -t @themerdev/vim \
  -t @themerdev/wallpaper-block-wave \
  -o output

Themer color sets

Premium color sets

NameDark PreviewLight Preview
JamstackerJamstacker dark preview(dark only)
Victor MonoVictor Mono dark previewVictor Mono light preview
Future ProFuture Pro dark previewFuture Pro light preview

Original color sets

NameDark PreviewLight Preview
@themerdev/colors-default@themerdev/colors-default dark preview@themerdev/colors-default light preview
@themerdev/colors-finger-paint@themerdev/colors-finger-paint dark preview@themerdev/colors-finger-paint light preview
@themerdev/colors-green-as-a-whistle@themerdev/colors-green-as-a-whistle dark preview@themerdev/colors-green-as-a-whistle light preview
@themerdev/colors-monkey@themerdev/colors-monkey dark preview@themerdev/colors-monkey light preview
@themerdev/colors-night-sky@themerdev/colors-night-sky dark preview(dark only)
@themerdev/colors-polar-ice@themerdev/colors-polar-ice dark preview@themerdev/colors-polar-ice light preview
@themerdev/colors-right-in-the-teals@themerdev/colors-right-in-the-teals dark preview@themerdev/colors-right-in-the-teals light preview

Ports from third-party themes

NameDark PreviewLight Preview
@themerdev/colors-dracula@themerdev/colors-dracula dark preview(dark only)
@themerdev/colors-github-universe!themer/colors-github-universe preview(dark only)
@themerdev/colors-lucid@themerdev/colors-lucid dark preview@themerdev/colors-lucid light preview
@themerdev/colors-mojave@themerdev/colors-mojave dark preview@themerdev/colors-mojave light preview
@themerdev/colors-nova@themerdev/colors-nova preview(dark only)
@themerdev/colors-one@themerdev/colors-one dark preview@themerdev/colors-one light preview
@themerdev/colors-rivet@themerdev/colors-rivet dark preview@themerdev/colors-rivet light preview
@themerdev/colors-seti@themerdev/colors-seti dark preview(dark only)
@themerdev/colors-solarized@themerdev/colors-solarized dark preview@themerdev/colors-solarized light preview

Create your own color set

To create your own color set, create a JavaScript file that exports a colors object, like so:

module.exports.colors = {

  // A color set can have both light and dark variants, but is only required
  // to have one.
  dark: {

    // Colors can be defined in any valid CSS format.

    // accent0-7 should be the main accent colors of your theme. See the table
    // in the "Color mappings" section for how the colors will be used in your
    // new themes.
    accent0: '#FF4050',
    accent1: '#F28144',
    accent2: '#FFD24A',
    accent3: '#A4CC35',
    accent4: '#26C99E',
    accent5: '#66BFFF',
    accent6: '#CC78FA',
    accent7: '#F553BF',

    // shade0-7 should be shades of the same hue, with shade0 being the
    // background and shade7 being the foreground. If you omit the
    // intermediate shades (1 through 6), they will be calculated automatically
    // for you.
    shade0: '#282629',
    shade1: '#474247',
    shade2: '#656066',
    shade3: '#847E85',
    shade4: '#A29DA3',
    shade5: '#C1BCC2',
    shade6: '#E0DCE0',
    shade7: '#FFFCFF'

  },

  // Same as above, except that shade0 should be the lightest and shade7 should
  // be the darkest.
  light: { ... },

};

Pro Tip: you can use themer's Web UI to more easily select your colors, then click the "Download" button to generate a colors.js file.

Then pass the path to your JS file to the --colors argument of themer.

themer -c path/to/my/colors.js ...

Color mappings

To help you choose colors for your own color set, this is approximately how most themer templates will utilize your colors:

Color KeyTypical UsageConventional Color*
accent0error, VCS deletionRed
accent1syntaxOrange
accent2warning, VCS modificationYellow
accent3success, VCS additionGreen
accent4syntaxCyan
accent5syntaxBlue
accent6syntax, caret/cursor 
accent7syntax, specialMagenta
shade0background color 
shade1UI 
shade2UI, text selection 
shade3UI, code comments 
shade4UI 
shade5UI 
shade6foreground text 
shade7foreground text 

*Conventional color is suggested for consistency with ANSI color names in terminal themes, but is not a hard requirement.

See themer's Web UI for a more visual representation of the color mappings.

Tips

  • If you omit shade1 through shade6, themer will interpolate them automatically for you, using color-steps.
  • themer supports any valid CSS color format; that means you can use chartreuse, rgb(127, 255, 0), rgb(50%, 100%, 0%), #7FFF00, hsl(90, 100%, 50%), etc.
  • I would recommend checking your color set into your dotfiles repo. Once you've fine-tuned it, you might consider publishing it to npm for others to use! (If you do, consider naming your package starting with themer-colors- so that others can easily find it.)

Using base16 schemes with Themer

In place of a themer color set file or npm package, you can also provide themer with any base16 scheme YAML file.

themer --colors path/to/base16-scheme.yml ...

Refer to the base16 repository for a list of base16 schemes.

Themer templates

Terminals

Editors/IDEs

Wallpapers

Other

Community

Create your own template

To create your own template, create a JavaScript file that exports a render function, like so:

module.exports.render = function (colors, options) {
  /*

  colors is an object that will have one or both keys: 'light' and
  'dark', each being an object with keys 'accent0' through 'accent7'
  and 'shade0' through 'shade7'.

  options is an object representing the original command-line args
  passed to themer. This allows you to add special arguments that
  will apply only to your template. An example of this is allowing a
  themer user to specify custom resolutions for rendering a wallpaper.

  This function should return an array of Promises, each Promise
  resolving to an object of the following structure:
  {
    name: '<the name of the file to be written>', // can include subdirectories, too
    contents: <a Buffer of the contents of the file to be written>,
  }

  */
};

Your JS file can then be passed to a --template argument of themer. That's it!

Here's an example template render function that generates a Slack sidebar theme from a themer color set.

Once you've developed your template, consider publishing it on npm so that others can use it!

About

themer is inspired by trevordmiller/nova and chriskempson/base16.

Conceptually, themer is very similar to base16, but:

  1. It is lighter, and simpler to use.
  2. It is more easily extensible with your own color sets and templates.
  3. It integrates better with your dotfiles, especially if you keep them under version control.

Contributing

For instructions on how to contribute to themer, see CONTRIBUTING.md and themer's code of conduct.

Themer's Web UI

If you'd prefer to develop your themes visually, check out themer's Web UI, an offline-ready Progressive Web App.

Support themer

Download Details:

Author: Themerdev
Source Code: https://github.com/themerdev/themer 
License: MIT license

#atom #vim #theme #slack 

Themer: A Set Of Colors and Generates Themes for Your Apps

Jupyter-themes: Custom Jupyter Notebook Themes

jupyterthemes

Theme-ify your Jupyter Notebooks!

Updates


Scaling Back Support:

As anyone who has opened a bug report or feature request in the last several years can attest, I have begun scaling back support for the jupyter-themes package - mostly due to my personal preference for using Jupyter Lab over Jupyter Notebook classic (see update below for two of my JupyterLab theme repos).

For those with continued interest in using jupyter-themes I am planning to write up a tutorial for how to add your own custom themes to your local jt installation as well as a contributing guide for those who would like submit pull-requests to the official pacakge.

I'll also take this opportunity to say thank you to everyone who regularly used, expressed appreciation for, and contributed to jupyter-themes. I'm particularly grateful to those of you who bothered to submit pull requests - adding many excellent features that I was either too short-sighted to anticipate or simply incapable of implementing on my own. So, thank you, sincerely.

JupyterLab Themes:

Finally got around to creating a pair of themes for JupyterLab with similar style and design conventions to the jupyter-themes package:


JT Customizable Features

plotting style

image

markdown/equations

image

pandas dataframes

image

command palette

image

Links

Requirements

  • Python 3.4, 3.5, 3.6, 3.7 and 3.8
  • Jupyter (Anaconda recommended)
  • matplotlib

Install with pip

# install jupyterthemes
pip install jupyterthemes

# upgrade to latest version
pip install --upgrade jupyterthemes

Install with conda

# install jupyterthemes
conda install -c conda-forge jupyterthemes

# update to latest version
conda update jupyterthemes

Known issues

  • for best results: use notebook>=5.6.0 (pip install --upgrade notebook)
  • refreshing / removing / resetting: depending on your system, browser, etc., you may need to empty your browser cache after installing a new theme (-t) or attempting to restore the default (-r) in order for those changes to take effect. (see discussion here). At the very least you'll need to refresh your browser window (usually cmd+r or ctrl+r).
  • install issue: if you get an error saying jt is not recognized, try this fix.
  • slow render when scrolling: fix available here

Command Line Usage

jt  [-h] [-l] [-t THEME] [-f MONOFONT] [-fs MONOSIZE] [-nf NBFONT]
    [-nfs NBFONTSIZE] [-tf TCFONT] [-tfs TCFONTSIZE] [-dfs DFFONTSIZE]
    [-m MARGINS] [-cursw CURSORWIDTH] [-cursc CURSORCOLOR] [-vim]
    [-cellw CELLWIDTH] [-lineh LINEHEIGHT] [-altp] [-altmd] [-altout]
    [-P] [-T] [-N] [-r] [-dfonts]

Description of Command Line options

cl optionsargdefault
Usage help-h--
List Themes-l--
Theme Name to Install-t--
Code Font-f--
Code Font-Size-fs11
Notebook Font-nf--
Notebook Font Size-nfs13
Text/MD Cell Font-tf--
Text/MD Cell Fontsize-tfs13
Pandas DF Fontsize-dfs9
Output Area Fontsize-ofs8.5
Mathjax Fontsize (%)-mathfs100
Intro Page Margins-mauto
Cell Width-cellw980
Line Height-lineh170
Cursor Width-cursw2
Cursor Color-cursc--
Alt Prompt Layout-altp--
Alt Markdown BG Color-altmd--
Alt Output BG Color-altout--
Style Vim NBExt*-vim--
Toolbar Visible-T--
Name & Logo Visible-N--
Kernel Logo Visible-kl--
Reset Default Theme-r--
Force Default Fonts-dfonts--

Command Line Examples

# list available themes
# onedork | grade3 | oceans16 | chesterish | monokai | solarizedl | solarizedd
jt -l

# select theme...
jt -t chesterish

# restore default theme
# NOTE: Need to delete browser cache after running jt -r
# If this doesn't work, try starting a new notebook session.
jt -r

# toggle toolbar ON and notebook name ON
jt -t grade3 -T -N

# toggle kernel logo.  kernel logo is in same container as name
# toggled with -N.  That means that making the kernel logo visible is
# pointless without also making the name visible
jt -t grade3 -N -kl

# set code font to 'Roboto Mono' 12pt
# (see monospace font table below)
jt -t onedork -f roboto -fs 12

# set code font to Fira Mono, 11.5pt
# 3digit font-sizes get converted into float (115-->11.5)
# 2digit font-sizes > 25 get converted into float (85-->8.5)
jt -t solarizedd -f fira -fs 115

# set font/font-size of markdown (text cells) and notebook (interface)
# see sans-serif & serif font tables below
jt -t oceans16 -tf merriserif -tfs 10 -nf ptsans -nfs 13

# adjust cell width (% screen width) and line height
jt -t chesterish -cellw 90% -lineh 170

# or set the cell width in pixels by leaving off the '%' sign
jt -t solarizedl -cellw 860

# fix the container-margins on the intro page (defaults to 'auto')
jt -t monokai -m 200

# adjust cursor width (in px) and make cursor red
# options: b (blue), o (orange), r (red), p (purple), g (green), x (font color)
jt -t oceans16 -cursc r -cursw 5

# choose alternate prompt layout (narrower/no numbers)
jt -t grade3 -altp

# my two go-to styles
# dark
jt -t onedork -fs 95 -altp -tfs 11 -nfs 115 -cellw 88% -T
# light
jt -t grade3 -fs 95 -altp -tfs 11 -nfs 115 -cellw 88% -T

Set Plotting Style (from within notebook)

jtplot.style() makes changes to matplotlib's rcParams dictionary so that figure aesthetics match those of a chosen jupyterthemes style. In addition to setting the color scheme, jtplot.style() allows you to control various figure properties (spines, grid, font scale, etc.) as well as the plotting "context" (borrowed from seaborn).

Note, these commands do not need to be re-run every time you generate a new plot, just once at the beginning of your notebook or whenever style changes are desired after that.

Pro-tip: Include the following two lines in ~/.ipython/profile_default/startup/startup.ipy file to set plotting style automatically whenever you start a notebook:

# import jtplot submodule from jupyterthemes
from jupyterthemes import jtplot

# currently installed theme will be used to
# set plot style if no arguments provided
jtplot.style()

jtplot.style() Examples

# import jtplot module in notebook
from jupyterthemes import jtplot

# choose which theme to inherit plotting style from
# onedork | grade3 | oceans16 | chesterish | monokai | solarizedl | solarizedd
jtplot.style(theme='onedork')

# set "context" (paper, notebook, talk, poster)
# scale font-size of ticklabels, legend, etc.
# remove spines from x and y axes and make grid dashed
jtplot.style(context='talk', fscale=1.4, spines=False, gridlines='--')

# turn on X- and Y-axis tick marks (default=False)
# turn off the axis grid lines (default=True)
# and set the default figure size
jtplot.style(ticks=True, grid=False, figsize=(6, 4.5))

# reset default matplotlib rcParams
jtplot.reset()

Monospace Fonts (code cells)

-f argMonospace Font
ankaAnka/Coder
anonymousAnonymous Pro
aurulentAurulent Sans Mono
bitstreamBitstream Vera Sans Mono
bpmonoBPmono
codeCode New Roman
consolamonoConsolamono
cousineCousine
dejavuDejaVu Sans Mono
droidmonoDroid Sans Mono
firaFira Mono
firacodeFira Code
genericGeneric Mono
hackHack
haskligHasklig
inconsolataInconsolata-g
inputmonoInput Mono
iosevkaIosevka
liberationLiberation Mono
mesloMeslo
officeOffice Code Pro
oxygenOxygen Mono
robotoRoboto Mono
saxmonosaxMono
sourceSource Code Pro
sourcemedSource Code Pro Medium
sudovarSudo Variable
ptmonoPT Mono
ubuntuUbuntu Mono

Sans-Serif Fonts

-nf/-tf argSans-Serif Font
opensansOpen Sans
droidsansDroid Sans
exosansExo_2
latosansLato
ptsansPT Sans
robotosansRoboto
sourcesansSource Sans Pro

Serif Fonts

-nf/-tf argSerif Font
loraserifLora
ptserifPT Serif
georgiaserifGeorgia
cardoserifCardo
crimsonserifCrimson Text
ebserifEB Garamond
merriserifMerriweather
neutonserifNeuton
goudyserifSorts Mill Goudy

Download Details:

Author: Dunovank
Source Code: https://github.com/dunovank/jupyter-themes 
License: MIT license

#jupyter #theme 

Jupyter-themes: Custom Jupyter Notebook Themes

Create the Perfect Hero Image for Your Portfolio Site

This article was created in partnership with BAWMedia. Thank you for supporting the partners who make SitePoint possible.

All it takes is a matter of seconds for visitors to form an impression about a website. Considering the hero image on the home page is the first bit of content that most visitors encounter, what sort of impression do you want them to get when they see yours? 

To make the most of these initial encounters, your hero image needs to be well-thought-out and executed. It needs to convey what type of creator you are, offer a preview of your talents, and give visitors a reason to explore further.

To create the perfect hero image for your portfolio website, there are 6 elements to focus on. In this post, we’ll look at what those elements are as well as some pre built website examples from BeTheme – one of the world’s most popular and highly rated WordPress Themes with 264,000+ sales and a 4.83 out 5 star rating – and other brands that demonstrate various ways to artfully bring them together.

Designing the perfect hero image for your portfolio website

In general, there are 6 elements that come together to form every hero section, regardless of what type of site you’re building. Here are some things to think about as you create your hero image using these critical components:

1. Pick imagery that will be the best reflection of what you do

The imagery you choose for your hero image should have a direct connection to the type of work you do. 

For example, Lauren Waldorf Interiors is a boutique interior design studio. As such, the hero section contains a sliding photo gallery of completed projects:

Lauren Waldorf Interiors

For photographers, videographers, web designers, and other visual artists, you probably have a lot of graphics you could show off in the hero. For artists that work with other types of media, it might be difficult to visually depict what you do. 

In the latter case, you might decide to make your face the primary image in the hero section, as we see in the BeDJ 2 pre built website hero image:

BeDJ Theme

The DJ’s face gives visitors something more visually interesting to look at than just a bunch of colors and music-related graphics. It also creates a direct connection between the body of work and the artist. 

As you go about designing your hero image, consider the following: 

  • What or who should be the main subject of the section?
  • Does the image belong in the foreground or blended into the background? 
  • Will the image be untouched or is there a way to make it appear more artistic?

Also, do you even need imagery at all? For example, if you’re a font designer or copywriter, then you might decide to skip the imagery and just let your text do the talking.

2. Use the background to lend more details about what you do

There are different ways to deal with the background of the hero section. 

In some cases, your work might occupy the backdrop. For instance, a videographer could put a slideshow of their videos in the background. Not only would this make the website feel lively, but it would also give visitors a quick preview of your work.

In other cases, you might want to give a small tease of your work in the hero section, like this example from the BeInterior 6 pre built website:

BeInterior 6

The photo gallery takes up about a quarter of the width of the section. While the designer could’ve used a color background to frame the work, they chose to add a textured photo instead. The sheet not only provides a comforting color to the backdrop, it’s a creative way to add context to what the interior designer does.

Your other option would be to use solid colors or gradients (along with illustrations) in the background the way that Mindgrub does:

mindgrub

For digital creatives, this might be your best option. While you could show off screenshots of websites you’ve built or UI kits you’ve developed, you can use this space to create a digital masterpiece of your own. You can save the work you’ve created for clients for another section or page.

3. Style your fonts so that your voice becomes crystal-clear

Even if you don’t write the text that appears in the hero section, the aesthetic choices you make can communicate just as much to prospective clients as the words themselves do. 

There are a number of ways to add a voice to your hero messaging. The first is with the type of font you use. For example, BeDetailing 4 pre built website uses a Google font called Italiana: 

BeDetailing Theme

This auto detailing company expresses a fondness for classic and vintage cars right up front. The wording, car imagery, and the elegant calligraphy-inspired font all tell us as much.

Another thing to consider is how the styling of your sentences can make your messaging sound different. For example, Get Em Tiger does a number of things to change the way their hero image text sounds inside the heads of people reading it:

Get Em Tiger

First, the main headline is in all caps. Text styled this way is generally interpreted to sound loud and bold. 

Secondly, the words “STAND OUT” are highlighted in orange. This is meant as a substitute for italics or bolding that would normally be used to create emphasis in plain text.

In addition, the sub-headline is written in sentence case. When visitors read this, it will likely take on a friendlier, more conversational tone inside their heads. 

4. Figure out the role that colors will play

By the time you’re ready to create the hero image for your portfolio site, you’ve likely worked out what your brand colors are going to be. 

Typically, the brand color palette is useful for styling buttons as well as adding accents to key areas of your website. However, you might decide to heavily pull from it to create your hero section as G Sharp Design has done:

G Sharp Design

The color palette in this hero section is relatively simple. Yet, the vibrant red and yellow that dominate the design make it impossible to tear your eyes away from it. 

While this spectacle of color works well for this agency, it might not feel right for other types of creatives. For instance, a photography pre built website like BePhoto 2 uses a dark theme:

BePhoto 2

The hero image has a photo slider in the center of it where a bright pop of color is revealed with each subsequent photo. Because the rest of the site is styled in a muted dark grey with off-white text, the photos instantly grab attention.

So as you decide on your own color palette, ask yourself the following questions:

  • How many colors do you need?
  • Which colors from your brand color palette will you use?
  • Are there other colors you want to pull in?
  • What role will each color play in terms of setting the mood, inspiring action, etc.

Color doesn’t need to be all-consuming in order to be effective. It all depends on what you need it to do for you in this section.

5. Make it more impressive with interactions

Without animation, your hero image is nothing more than a static billboard. 

Now, there’s nothing wrong with billboard advertising — when it’s over 200 square feet in size and standing more than 10 feet off the ground. Without the grand presence that billboards have in the real world, though, static designs on a website can feel lifeless and uninspired. 

Just like the other elements we’ve looked at today, there are different ways to add motion and interaction to your hero image design. 

For instance, Awesome Inc is an animation and design studio. It would be weird if we saw nothing of their high-profile animation work after entering the website:

Awesome Inc

On the other hand, if you’re a creative that doesn’t do animation work, there would be no reason to take it to this extreme. That doesn’t mean that your hero image should be devoid of motion though. 

For example, BeModel 3 pre built website has a dynamic hero image design: 

BeModel 3

It’s not just the image slider that’s animated. The color palette of the slider changes in sync with the photo changes. 

Even this might seem like a lot of motion for you. If that’s the case, there are more subtle ways to use animations to make your hero image feel more engaging — like adding hover transformations to buttons or transition animations to the section.

6. Pick a single call-to-action

Last but not least, you’ll want to figure out what the next logical action should be for visitors. 

One option is to keep them scrolling down the page. If that’s the case, you might not even want to include a call-to-action button. The majority of visitors will naturally start scrolling after they’ve seen all that they need to see. 

Another option is to invite them to visit another page on your website. If that’s the case, which page should it be? On a portfolio site, you’ll probably want visitors to go to your Portfolio or Services page.

BePhotography 2 pre built website, for instance, directs prospective clients to the Portfolio page:

Yet one more option is to encourage visitors to engage with the hero image before giving them the option to go somewhere else. This will be useful if your hero image offers a slideshow of your work that users can engage with. This is what Perky Bros does:

The visitor’s cursor will change appearance based on which part of the slider they hover over. On the left or right side of the screen, a blue arrowhead appears, letting them know there’s more work to explore. In the center of the screen, the words “View Project” appear. When clicked, the visitor will be taken to a case study page for the project. 

Design a hero image that does your creative work justice

The design of the hero image is especially critical on portfolio sites as it not only needs to be reflective of what visitors will find on your site, but also reflective of your talents as a creative. So you have to make sure you create a hero image that properly sets the stage for you. 

What’s nice about using a WordPress theme like BeTheme is that it comes with 101 pre built portfolio sites. Each of which comes with a hand-crafted hero image design that will make it easy to update the 6 crucial components we looked at above. 

Original article source at: https://www.sitepoint.com/

#portfolio #image #theme 

Create the Perfect Hero Image for Your Portfolio Site

Spring MVC Themes

How to use Spring MVC Themes

How great it would be If we can change the look and feel of a web application with just one click. Spring MVC framework does just that. It allows you to change the look and feel of your application, thereby enhancing user experience.

What is a Theme ?

A theme is a collection of static resources, typically style sheets and images that affect the visual style of the application. Given below are the snapshots of an application using different themes

Wood Theme

wood-theme

Pentagon Theme

pentagon-theme

How to use Spring MVC themes ?

To use themes in your Spring web application, you must set up an implementation of the org.springframework.ui.context.ThemeSource interface. Here we will use org.springframework.ui.context.support.ResourceBundleThemeSource implementation that loads properties file from the root of the classpath.

When using the ResourceBundleThemeSource, a theme is defined in a simple properties file. The properties file lists the resources that make up the theme. Here is an example:

styleSheet=/themes/wood.css

The keys of the properties are the names that refer to the themed elements from view code (e.g. JSP file).

For a JSP, we use the spring:theme custom tag. The following JSP fragment uses the theme defined in the example to customize the look and feel:

< %@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
< html>
    < head>
        < link rel="stylesheet" href="< spring:theme code='styleSheet'/>" type="text/css"/>
    < /head>
    < body>
        ...
    < /body>
< /html>

Configuring the themes ?

Configure the ResourceBundleThemeSource bean in the bean definition file.

< bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
	< property name="basenamePrefix" value="theme-" />
< /bean>

Note that we have set the basnamePrefix property of the bean to “theme-“ , by default the ResourceBundleThemeSource uses an empty base name prefix.

So properties file should be named as theme-filename.properties eg. theme-wood.properties, theme-pentagon.properties etc.

Theme Resolver

After defining themes, it is the ThemeResolver implementation that decides which theme to use. Spring provides various theme resolvers, for  example: FixedThemeResolver, SessionThemeResolver, CookieThemeResolver.

With this example we will use CookieThemeResolver implementation in which the selected theme is stored in a cookie on the client.

Configuring the Theme Resolver

< bean id="themeResolver" class="org.springframework.web.servlet.theme.CookieThemeResolver">
	< property name="defaultThemeName" value="wood" />
< /bean>

Note: We have set the default theme to wood. So, when a user accesses the web application for the first time, wood theme will be in effect.

Theme Interceptor

To allow users to change the theme with just a click , Spring provides ThemeChangeInterceptor. Below is the configuration of ThemeChangeInterceptor in the bean definition file

< bean id="themeChangeInterceptor" class="org.springframework.web.servlet.theme.ThemeChangeInterceptor">
	< property name="paramName" value="theme" />
< /bean>

We have specified the value of property paramName as theme which means ThemeChangeInterceptor will be invoked whenever a request is made with parameter “theme” with different values.

We also require to configure themeChangeInterceptor bean that we have defined above as an interceptor. We can do that using  mvc:interceptors

< mvc:interceptors>
   < ref bean="themeChangeInterceptor">< /ref>
< /mvc:interceptors>

Project Structure :

Here is the snapshot of project structure in Eclipse IDE

theme-project-structure

Let’s see the theme-pentagon.properties file which is under src folder

 styleSheet=themes/pentagon.css

There is only one line, which defines the URL to get the corresponding CSS file. Similarly, for other properties file eg. theme-symphony, theme-wood, theme-wall.

In each properties file there is only one line referring to the URL for the CSS file.

So, whenever ThemeChangeInterceptor intercepts a change in theme, it would lookup for corresponding properties file and try to access the CSS file as the URL specified in properties file.

Since all our themes (CSS files) are under resources/themes folder. We have to configure the themes/css-filename to resources/themes/css-filename, otherwise properties file will not be able to locate the CSS file.We can do that using mvc:resources as shown below :

< mvc:resources mapping="/themes/**" location="/resources/themes/">< /mvc:resources>

wood.css

In wood.css file, we just change the background image of the body tag. But you are not just restricted to changing the background image you can change text styles, font, color etc.

body {
	 background-image : url("/Themes/images/wood_pattern.png");
}

HomeController

We have a simple HomeController which will serve home.jsp page on running the Themes application

@Controller
public class HomeController {

	@RequestMapping("/")
	public String getHomePage(){
		return "home";
	}

}

Running the Themes Application

Now, we are all set to run the themes application. On running the application you will see home.jsp page with wood (which we declared as default) theme in effect

theme-homepage

Let’s explore other themes by clicking on themes link available on the right side of home.jsp page.

Wall Theme

wall-theme

Symphony Theme

symphony-theme

Note : See the change in the URL on clicking the different themes link. On clicking a theme link,  for example, wood, a request parameter theme with value wood, is sent to the server. ThemeChangeInterceptor intercepts the change in theme and displays the appropriate theme.

Gotchas While Working with Themes

Below are some important gotchas that you should be aware of while working with themes

  • Make sure your properties file are on classpath. To do that, put properties file directly under src folder. If your properties files are not on classpath you will get ServletException saying  ” Theme ‘wood’: No message found under code ‘styleSheet’ for locale ‘en_US’ ”  Here is the error message that you will encounter if properties files are not found

classpath-error

  • The next important point to keep in mind is the URL which we use in properties file to link to the CSS. Note that in properties files we have mentioned the URL themes/css-file-name to look for the themes file. Don’t forget to map this URL to actual location where you have kept the CSS files. To do the mapping use mvc:resources, as we have done in this case: <mvc:resources mapping=”/themes/**” location=”/resources/themes/” />. If you forgot to do the mapping you will not get any error messages, but the theme will not work as it would not be able to access the CSS file
  • One last silly mistake you can make while using Spring themes is, not using spring:theme tag in your JSP file. Note that we have used spring:themes tag in home.jsp page. <link rel=”stylesheet” href=”<spring:theme code=”styleSheet”/>” type=”text/css”/> Spring theme tag is required to make themes work.

As always, if you are interested in trying the code yourself download it.

[buttonleads form_title=”Download Code” redirect_url=https://edureka.wistia.com/medias/f7v8yqavdp/download?media_file_id=79851340 course_id=62 button_text=”Download Code”]

Got a question for us? Please mention it in the comments section and we will get back to you.

Original article source at: https://www.edureka.co/

#spring #theme 

Spring MVC Themes
Monty  Boehm

Monty Boehm

1667617282

Themer Takes A Set Of Colors and Generates Themes for Your Apps

themer 

themer takes a set of colors and generates editor themes, terminal themes, themes for other apps, and desktop/device wallpapers.

visual description

Support themer

Installation

Don't love the command-line? Check out the Web UI.

mkdir my-dotfiles && cd my-dotfiles
npm install themer

If you do not keep your dotfiles under version control, you can simply install themer globally with npm -g install themer.

themer can also be used without installing, via npx—see example below.

Usage

Pass themer a color set, as many templates as you wish, and an output directory.

themer \
  --colors <npm package name OR file> \
  --template <npm package name OR file> \
  [--template <npm package name OR file>...] \
  --out <directory>

Your generated theme files, as well as a README on how to install them, will be written to the output directory.

themer can create themes from your custom color sets (see "Create your own color set" below) or from color sets published on npm (see @themerdev/colors-default). The same is true for templates.

Example workflow

Say you wanted to generate a vim theme and desktop background using themer's default color set. First, install themer, the color set, and the templates:

cd my-dotfiles
npm install themer @themerdev/colors-default @themerdev/vim @themerdev/wallpaper-block-wave

Then edit your package.json:

  ...
  "scripts": {
    "build": "themer -c @themerdev/colors-default -t @themerdev/vim -t @themerdev/wallpaper-block-wave -o gen"
  },
  ...

Then run your new script:

npm run build

Now check the gen/ folder for your generated themes. Here's the result:

example usage result

Example usage with npx

npx \
  -p themer \
  -p @themerdev/colors-default \
  -p @themerdev/vim \
  -p @themerdev/wallpaper-block-wave \
  themer \
  -c @themerdev/colors-default \
  -t @themerdev/vim \
  -t @themerdev/wallpaper-block-wave \
  -o output

Themer color sets

Premium color sets

NameDark PreviewLight Preview
JamstackerJamstacker dark preview(dark only)
Victor MonoVictor Mono dark previewVictor Mono light preview
Future ProFuture Pro dark previewFuture Pro light preview

Original color sets

NameDark PreviewLight Preview
@themerdev/colors-default@themerdev/colors-default dark preview@themerdev/colors-default light preview
@themerdev/colors-finger-paint@themerdev/colors-finger-paint dark preview@themerdev/colors-finger-paint light preview
@themerdev/colors-green-as-a-whistle@themerdev/colors-green-as-a-whistle dark preview@themerdev/colors-green-as-a-whistle light preview
@themerdev/colors-monkey@themerdev/colors-monkey dark preview@themerdev/colors-monkey light preview
@themerdev/colors-night-sky@themerdev/colors-night-sky dark preview(dark only)
@themerdev/colors-polar-ice@themerdev/colors-polar-ice dark preview@themerdev/colors-polar-ice light preview
@themerdev/colors-right-in-the-teals@themerdev/colors-right-in-the-teals dark preview@themerdev/colors-right-in-the-teals light preview

Ports from third-party themes

NameDark PreviewLight Preview
@themerdev/colors-dracula@themerdev/colors-dracula dark preview(dark only)
@themerdev/colors-github-universe!themer/colors-github-universe preview(dark only)
@themerdev/colors-lucid@themerdev/colors-lucid dark preview@themerdev/colors-lucid light preview
@themerdev/colors-mojave@themerdev/colors-mojave dark preview@themerdev/colors-mojave light preview
@themerdev/colors-nova@themerdev/colors-nova preview(dark only)
@themerdev/colors-one@themerdev/colors-one dark preview@themerdev/colors-one light preview
@themerdev/colors-rivet@themerdev/colors-rivet dark preview@themerdev/colors-rivet light preview
@themerdev/colors-seti@themerdev/colors-seti dark preview(dark only)
@themerdev/colors-solarized@themerdev/colors-solarized dark preview@themerdev/colors-solarized light preview

Create your own color set

To create your own color set, create a JavaScript file that exports a colors object, like so:

module.exports.colors = {

  // A color set can have both light and dark variants, but is only required
  // to have one.
  dark: {

    // Colors can be defined in any valid CSS format.

    // accent0-7 should be the main accent colors of your theme. See the table
    // in the "Color mappings" section for how the colors will be used in your
    // new themes.
    accent0: '#FF4050',
    accent1: '#F28144',
    accent2: '#FFD24A',
    accent3: '#A4CC35',
    accent4: '#26C99E',
    accent5: '#66BFFF',
    accent6: '#CC78FA',
    accent7: '#F553BF',

    // shade0-7 should be shades of the same hue, with shade0 being the
    // background and shade7 being the foreground. If you omit the
    // intermediate shades (1 through 6), they will be calculated automatically
    // for you.
    shade0: '#282629',
    shade1: '#474247',
    shade2: '#656066',
    shade3: '#847E85',
    shade4: '#A29DA3',
    shade5: '#C1BCC2',
    shade6: '#E0DCE0',
    shade7: '#FFFCFF'

  },

  // Same as above, except that shade0 should be the lightest and shade7 should
  // be the darkest.
  light: { ... },

};

Pro Tip: you can use themer's Web UI to more easily select your colors, then click the "Download" button to generate a colors.js file.

Then pass the path to your JS file to the --colors argument of themer.

themer -c path/to/my/colors.js ...

Color mappings

To help you choose colors for your own color set, this is approximately how most themer templates will utilize your colors:

Color KeyTypical UsageConventional Color*
accent0error, VCS deletionRed
accent1syntaxOrange
accent2warning, VCS modificationYellow
accent3success, VCS additionGreen
accent4syntaxCyan
accent5syntaxBlue
accent6syntax, caret/cursor 
accent7syntax, specialMagenta
shade0background color 
shade1UI 
shade2UI, text selection 
shade3UI, code comments 
shade4UI 
shade5UI 
shade6foreground text 
shade7foreground text 

*Conventional color is suggested for consistency with ANSI color names in terminal themes, but is not a hard requirement.

See themer's Web UI for a more visual representation of the color mappings.

Tips

  • If you omit shade1 through shade6, themer will interpolate them automatically for you, using color-steps.
  • themer supports any valid CSS color format; that means you can use chartreuse, rgb(127, 255, 0), rgb(50%, 100%, 0%), #7FFF00, hsl(90, 100%, 50%), etc.
  • I would recommend checking your color set into your dotfiles repo. Once you've fine-tuned it, you might consider publishing it to npm for others to use! (If you do, consider naming your package starting with themer-colors- so that others can easily find it.)

Using base16 schemes with Themer

In place of a themer color set file or npm package, you can also provide themer with any base16 scheme YAML file.

themer --colors path/to/base16-scheme.yml ...

Refer to the base16 repository for a list of base16 schemes.

Themer templates

Terminals

Editors/IDEs

Wallpapers

Other

Community

Create your own template

To create your own template, create a JavaScript file that exports a render function, like so:

module.exports.render = function (colors, options) {
  /*

  colors is an object that will have one or both keys: 'light' and
  'dark', each being an object with keys 'accent0' through 'accent7'
  and 'shade0' through 'shade7'.

  options is an object representing the original command-line args
  passed to themer. This allows you to add special arguments that
  will apply only to your template. An example of this is allowing a
  themer user to specify custom resolutions for rendering a wallpaper.

  This function should return an array of Promises, each Promise
  resolving to an object of the following structure:
  {
    name: '<the name of the file to be written>', // can include subdirectories, too
    contents: <a Buffer of the contents of the file to be written>,
  }

  */
};

Your JS file can then be passed to a --template argument of themer. That's it!

Here's an example template render function that generates a Slack sidebar theme from a themer color set.

Once you've developed your template, consider publishing it on npm so that others can use it!

About

themer is inspired by trevordmiller/nova and chriskempson/base16.

Conceptually, themer is very similar to base16, but:

  1. It is lighter, and simpler to use.
  2. It is more easily extensible with your own color sets and templates.
  3. It integrates better with your dotfiles, especially if you keep them under version control.

Contributing

For instructions on how to contribute to themer, see CONTRIBUTING.md and themer's code of conduct.

Themer's Web UI

If you'd prefer to develop your themes visually, check out themer's Web UI, an offline-ready Progressive Web App.

Download Details:

Author: Themerdev
Source Code: https://github.com/themerdev/themer 
License: MIT license

#sketch #atom #vim #theme #slack 

Themer Takes A Set Of Colors and Generates Themes for Your Apps
Gordon  Matlala

Gordon Matlala

1667452860

Architect: A Jekyll Theme for GitHub Pages

The Architect theme

Architect is a Jekyll theme for GitHub Pages. You can preview the theme to see what it looks like, or even use it today.

Usage

To use the Architect theme:

Add the following to your site's _config.yml:

remote_theme: pages-themes/architect@v0.2.0
plugins:
- jekyll-remote-theme # add this line to the plugins list if you already have one

Optionally, if you'd like to preview your site on your computer, add the following to your site's Gemfile:

gem "github-pages", group: :jekyll_plugins

Customizing

Configuration variables

Architect will respect the following variables, if set in your site's _config.yml:

title: [The title of your site]
description: [A short description of your site's purpose]

Additionally, you may choose to set the following optional variables:

show_downloads: ["true" or "false" (unquoted) to indicate whether to provide a download URL]
google_analytics: [Your Google Analytics tracking ID]

Stylesheet

If you'd like to add your own custom styles:

Create a file called /assets/css/style.scss in your site

Add the following content to the top of the file, exactly as shown:

---
---

@import "{{ site.theme }}";

Add any custom CSS (or Sass, including imports) you'd like immediately after the @import line

Note: If you'd like to change the theme's Sass variables, you must set new values before the @import line in your stylesheet.

Layouts

If you'd like to change the theme's HTML layout:

  1. For some changes such as a custom favicon, you can add custom files in your local _includes folder. The files provided with the theme provide a starting point and are included by the original layout template.
  2. For more extensive changes, copy the original template from the theme's repository
    (Pro-tip: click "raw" to make copying easier)
  3. Create a file called /_layouts/default.html in your site
  4. Paste the default layout content copied in the first step
  5. Customize the layout as you'd like

Customizing Google Analytics code

Google has released several iterations to their Google Analytics code over the years since this theme was first created. If you would like to take advantage of the latest code, paste it into _includes/head-custom-google-analytics.html in your Jekyll site.

Overriding GitHub-generated URLs

Templates often rely on URLs supplied by GitHub such as links to your repository or links to download your project. If you'd like to override one or more default URLs:

Look at the template source to determine the name of the variable. It will be in the form of {{ site.github.zip_url }}.

Specify the URL that you'd like the template to use in your site's _config.yml. For example, if the variable was site.github.url, you'd add the following:

github:
  zip_url: http://example.com/download.zip
  another_url: another value

When your site is built, Jekyll will use the URL you specified, rather than the default one provided by GitHub.

Note: You must remove the site. prefix, and each variable name (after the github.) should be indent with two space below github:.

For more information, see the Jekyll variables documentation.

Roadmap

See the open issues for a list of proposed features (and known issues).

Project philosophy

The Architect theme is intended to make it quick and easy for GitHub Pages users to create their first (or 100th) website. The theme should meet the vast majority of users' needs out of the box, erring on the side of simplicity rather than flexibility, and provide users the opportunity to opt-in to additional complexity if they have specific needs or wish to further customize their experience (such as adding custom CSS or modifying the default layout). It should also look great, but that goes without saying.

Contributing

Interested in contributing to Architect? We'd love your help. Architect is an open source project, built one contribution at a time by users like you. See the CONTRIBUTING file for instructions on how to contribute.

Previewing the theme locally

If you'd like to preview the theme locally (for example, in the process of proposing a change):

  1. Clone down the theme's repository (git clone https://github.com/pages-themes/architect)
  2. cd into the theme's directory
  3. Run script/bootstrap to install the necessary dependencies
  4. Run bundle exec jekyll serve to start the preview server
  5. Visit localhost:4000 in your browser to preview the theme

Running tests

The theme contains a minimal test suite, to ensure a site with the theme would build successfully. To run the tests, simply run script/cibuild. You'll need to run script/bootstrap once before the test script will work.

Download Details:

Author: Pages-themes
Source Code: https://github.com/pages-themes/architect 
License: CC0-1.0 license

#jekyll #theme #githubpages 

Architect: A Jekyll Theme for GitHub Pages
Dexter  Goodwin

Dexter Goodwin

1667449080

Customizable angular UI Library Based on Eva Design System Dark Mode

Nebular

Nebular is a customizable Angular 10 UI Library with a focus on beautiful design and ability to adapt it to your brand easily. It comes with 4 stunning visual themes, a powerful theming engine with runtime theme switching and support of custom css properties mode. Nebular is based on Eva Design System specifications.

What's included

  • 4 Visual Themes, including new Dark easily customizable to your brand
  • 35+ Angular UI components with a bunch of handy settings and configurations
  • Configurable options - colors, sizes, appearances, shapes, and other useful settings
  • 3 Auth strategies and Security - authentication and security layer easily configurable for your API
  • Powerful theming engine with custom CSS properties mode
  • SVG Eva Icons support - 480+ general purpose icons

Quick Start

You can install Nebular with Angular CLI:

ng add @nebular/theme

Configuration will be done automatically.

If you want to have more control over setup process you can use manual setup guide.

Browser Support

Nebular supports most recent browsers. Browser support list can be found here.

Starters

  • ngx-admin - 20k+ stars application based on Nebular modules with beautiful E-Commerce & IOT components, for boosting your developing process. Live Demo.
  • ngx-admin-starter - clean application based on Nebular modules with a limited number of additional dependencies.
  • Backend Bundles - easy way to integrate ngx-admin with any backend (PHP, .Net, .Net Core, Java etc. )

UI Bakery

Try low-code internal tool builder for free

More from Akveo

  • Eva Icons - 480+ beautiful Open Source icons
  • Akveo templates - 10+ Ready-to-use apps templates to speed up your apps developments

How can I support the developers?

  • Star our GitHub repo ⭐
  • Create pull requests, submit bugs, suggest new features or documentation updates 🔧
  • Read us on Medium
  • Follow us on Twitter 🐾
  • Like our page on Facebook 👍

From Developers

Made with :heart: by Akveo team. Follow us on Twitter to get the latest news first! We're always happy to receive your feedback!

Documentation | Stackblitz Template | UI Bakery - Angular UI Builder | Angular templates

Download Details:

Author: Akveo
Source Code: https://github.com/akveo/nebular 
License: MIT license

#typescript #sass #theme #modular #angular 

Customizable angular UI Library Based on Eva Design System Dark Mode