0

我正在尝试将自定义颜色设置为 Drupal 9 中 html 元素的样式属性的 CSS 变量。

/**
 * Preprocess HTML
 */
function THEME_preprocess_html(&$vars)
{
  $colors = [
    'cyan' => '#009FDF',
    'magenta' => '#EF3F6B',
    'green' => '#62BB46',
    'orange' => '#EB5F0C'
  ];
  $colorKey = array_rand($colors);

  $store = \Drupal::service('tempstore.private')->get('theme');
  $theme = $store->get('color');

  if ($theme) {
    $vars['attributes']['style'][] = `--theme-color: ${$colors[$theme]}`;
  } else {
    $store->set('color', $colorKey);
    $theme = $store->get('color');
    $color = $colors[$theme];
    $vars['attributes']['style'][] = `--theme-color: ${$color}`;
  }
}

我需要在第一页访问时设置颜色并将其存储在所有页面路径中,因此如果在第一页访问时它落在它上面,magenta它应该为所有内部链接保持该颜色。但是如果用户重新加载或关闭窗口并导航回站点,它应该选择不同的随机颜色来使用。

我什至可能没有使用正确的方法来完成这个,欢迎任何反馈!谢谢!

4

0 回答 0