dxpr_theme-5.0.1/features/sooper-typography/typography-theme-settings.inc

features/sooper-typography/typography-theme-settings.inc
<?php

/**
 * @file
 * Theme typography settings.
 */

/**
 * Add typography options to the theme settings form.
 *
 * @param array $form
 *   Form array.
 * @param string $theme
 *   Theme machine name.
 */
function typography_theme_settings(array &$form, $theme) {
  $form['#attributes']['novalidate'] = 'novalidate';
  $form['dxpr_theme_settings']['typography'] = [
    '#title' => t('Typography'),
    '#type' => 'details',
    '#group' => 'dxpr_theme_settings',
    '#weight' => 15,
  ];

  $form['dxpr_theme_settings']['typography']['body_line_height'] = [
    '#type' => 'range',
    '#title' => t('Body Line Height'),
    '#default_value' => ((theme_get_setting('body_line_height') !== NULL)) ? theme_get_setting('body_line_height') : 1.5,
    '#min' => 0,
    '#max' => 3,
    '#step' => 0.01,
    '#attributes' => [
      'class' => ['dxb-slider', 'body-line-height-range', 'line-height-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['body_font_size'] = [
    '#type' => 'range',
    '#title' => t('Body Font Size'),
    '#default_value' => ((theme_get_setting('body_font_size') !== NULL)) ? theme_get_setting('body_font_size') : 14,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'body-font-size-range'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['nav_font_size'] = [
    '#type' => 'range',
    '#title' => t('Main menu Font Size'),
    '#default_value' => ((theme_get_setting('nav_font_size') !== NULL)) ? theme_get_setting('nav_font_size') : 14,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'nav-font-size-range'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['headings_line_height'] = [
    '#type' => 'range',
    '#title' => t('Headings Line Height'),
    '#default_value' => ((theme_get_setting('headings_line_height') !== NULL)) ? theme_get_setting('headings_line_height') : 1.05,
    '#min' => 0,
    '#max' => 3,
    '#step' => 0.1,
    '#attributes' => [
      'class' => ['dxb-slider', 'headings-line-height-range', 'line-height-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['scale_factor'] = [
    '#type' => 'range',
    '#title' => t('Typography Scale Factor') . ' <small>' . t('(This overrides advanced type controls)') . '</small>',
    '#default_value' => ((theme_get_setting('scale_factor') !== NULL)) ? theme_get_setting('scale_factor') : 1,
    '#min' => 1,
    '#max' => 2,
    '#step' => 0.01,
    '#attributes' => [
      'class' => ['dxb-slider', 'scale-factor-range'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type'] = [
    '#title' => t('Advanced Type Controls'),
    '#description' => t('If you change the main contorls above these advanced controls are automatically generated and need might re-adjustment.'),
    '#type' => 'details',
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['h1_font_size'] = [
    '#type' => 'range',
    '#title' => t('H1 Font Size (Page Title)'),
    '#default_value' => ((theme_get_setting('h1_font_size') !== NULL)) ? theme_get_setting('h1_font_size') : 36,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'h1-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['h2_font_size'] = [
    '#type' => 'range',
    '#title' => t('H2 Font Size'),
    '#default_value' => ((theme_get_setting('h2_font_size') !== NULL)) ? theme_get_setting('h2_font_size') : 16,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'h2-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['h3_font_size'] = [
    '#type' => 'range',
    '#title' => t('H3 Font Size'),
    '#default_value' => ((theme_get_setting('h3_font_size') !== NULL)) ? theme_get_setting('h3_font_size') : 14,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'h3-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['h4_font_size'] = [
    '#type' => 'range',
    '#title' => t('H4 Font Size'),
    '#default_value' => ((theme_get_setting('h4_font_size') !== NULL)) ? theme_get_setting('h4_font_size') : 12,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'h4-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['blockquote_font_size'] = [
    '#type' => 'range',
    '#title' => t('Blockquote Font Size'),
    '#default_value' => ((theme_get_setting('blockquote_font_size') !== NULL)) ? theme_get_setting('blockquote_font_size') : 16,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'blockquote-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['blockquote_line_height'] = [
    '#type' => 'range',
    '#title' => t('Blockquote Line Height'),
    '#default_value' => ((theme_get_setting('blockquote_line_height') !== NULL)) ? theme_get_setting('blockquote_line_height') : 1.5,
    '#min' => 0,
    '#max' => 3,
    '#step' => 0.1,
    '#attributes' => [
      'class' => ['dxb-slider', 'blockquote-line-height-range', 'line-height-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['headings_letter_spacing'] = [
    '#type' => 'range',
    '#title' => t('Headings Letter Spacing'),
    '#default_value' => ((theme_get_setting('headings_letter_spacing') !== NULL)) ? theme_get_setting('headings_letter_spacing') : 0,
    '#min' => -0.1,
    '#max' => 0.3,
    '#step' => 0.01,
    '#attributes' => [
      'class' => ['dxb-slider', 'headings-letter-spacing-range'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['headings_uppercase'] = [
    '#type' => 'checkbox',
    '#title' => t('Headings Uppercase'),
    '#default_value' => ((theme_get_setting('headings_uppercase') !== NULL)) ? theme_get_setting('headings_uppercase') : FALSE,
    '#size' => 9,
    '#maxlength' => 9,
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['headings_bold'] = [
    '#type' => 'checkbox',
    '#title' => t('Headings Bold'),
    '#default_value' => ((theme_get_setting('headings_bold') !== NULL)) ? theme_get_setting('headings_bold') : FALSE,
    '#size' => 9,
    '#maxlength' => 9,
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['mobile_type'] = [
    '#title' => t('Mobile Type Controls'),
    '#type' => 'details',
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['mobile_type']['body_mobile_font_size'] = [
    '#type' => 'range',
    '#title' => t('Body Font Size'),
    '#default_value' => ((theme_get_setting('body_mobile_font_size') !== NULL)) ? theme_get_setting('body_mobile_font_size') : 14,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'body-mobile-font-size-range'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['mobile_type']['nav_mobile_font_size'] = [
    '#type' => 'range',
    '#title' => t('Nav Font Size'),
    '#default_value' => ((theme_get_setting('nav_mobile_font_size') !== NULL)) ? theme_get_setting('nav_mobile_font_size') : 14,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'nav-mobile-font-size-range'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['mobile_type']['h1_mobile_font_size'] = [
    '#type' => 'range',
    '#title' => t('H1 Font Size (Page Title)'),
    '#default_value' => ((theme_get_setting('h1_mobile_font_size') !== NULL)) ? theme_get_setting('h1_mobile_font_size') : 36,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'h1-mobile-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['mobile_type']['h2_mobile_font_size'] = [
    '#type' => 'range',
    '#title' => t('H2 Font Size'),
    '#default_value' => ((theme_get_setting('h2_mobile_font_size') !== NULL)) ? theme_get_setting('h2_mobile_font_size') : 30,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'h2-mobile-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['mobile_type']['h3_mobile_font_size'] = [
    '#type' => 'range',
    '#title' => t('H3 Font Size'),
    '#default_value' => ((theme_get_setting('h3_mobile_font_size') !== NULL)) ? theme_get_setting('h3_mobile_font_size') : 16,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'h3-mobile-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['mobile_type']['h4_mobile_font_size'] = [
    '#type' => 'range',
    '#title' => t('H4 Font Size'),
    '#default_value' => ((theme_get_setting('h4_mobile_font_size') !== NULL)) ? theme_get_setting('h4_mobile_font_size') : 14,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'h4-mobile-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['advanced_type']['mobile_type']['blockquote_mobile_font_size'] = [
    '#type' => 'range',
    '#title' => t('Blockquote Font Size'),
    '#default_value' => ((theme_get_setting('blockquote_mobile_font_size') !== NULL)) ? theme_get_setting('blockquote_mobile_font_size') : 18,
    '#min' => 8,
    '#max' => 100,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'blockquote-mobile-font-size-range', 'font-size-slider'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['divider'] = [
    '#title' => t('Divider'),
    '#type' => 'details',
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#suffix' => _dxpr_theme_type_preview(),
  ];

  $form['dxpr_theme_settings']['typography']['divider']['divider_thickness'] = [
    '#type' => 'range',
    '#title' => t('Divider Thickness'),
    '#default_value' => ((theme_get_setting('divider_thickness') !== NULL)) ? theme_get_setting('divider_thickness') : 4,
    '#min' => 8,
    '#max' => 20,
    '#step' => 1,
    '#attributes' => [
      'class' => ['dxb-slider', 'divider-thickness-range'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['divider']['divider_length'] = [
    '#type' => 'range',
    '#title' => t('Divider Length') . ' <small>' . t('(0 = full width)') . '</small>',
    '#default_value' => ((theme_get_setting('divider_length') !== NULL)) ? theme_get_setting('divider_length') : 100,
    '#min' => 0,
    '#max' => 500,
    '#step' => 10,
    '#attributes' => [
      'class' => ['dxb-slider', 'divider-length-range'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['divider']['divider_position'] = [
    '#type' => 'range',
    '#title' => t('Divider Position'),
    '#default_value' => ((theme_get_setting('divider_position') !== NULL)) ? theme_get_setting('divider_position') : 1,
    '#min' => 1,
    '#max' => 3,
    '#step' => 1,
    '#states' => [
      'invisible' => [
        ':input[name="divider_length"]' => ['value' => '0'],
      ],
    ],
    '#attributes' => [
      'class' => ['dxb-slider', 'divider-position-range', 'element-invisible'],
      'data-dxb-slider' => TRUE,
    ],
  ];

  $form['dxpr_theme_settings']['typography']['divider']['divider_color'] = [
    '#type' => 'select',
    '#title' => t('Divider Color'),
    '#default_value' => theme_get_setting('divider_color'),
    '#options' => _dxpr_theme_color_options($theme),
  ];

  $form['dxpr_theme_settings']['typography']['divider']['divider_color_custom'] = [
    '#type' => 'textfield',
    '#title' => t('Custom Value'),
    '#default_value' => ((theme_get_setting('divider_color_custom') !== NULL)) ? theme_get_setting('divider_color_custom') : '#eeeeee',
    '#states' => [
      'visible' => [
        'select[name="divider_color"]' => ['value' => 'custom'],
      ],
    ],
  ];
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc