4

To add headerLinks, code is

 headerLinks: [
    { doc: "introduction", label: "Docs" },
    { doc: "faq", label: "FAQ" },
    {
      href: "https://github.com",
      label: "Github",
    },

    {
      href: "https://example.com",
      label: "Hire Us",
    },

I want to add an icon before "Hire Us" content. What should I write?

3 Answers3

8

You can check the css from the github repo:

https://github.com/facebook/docusaurus/blob/main/website/src/css/custom.css[enter link description here]1

.header-github-link:hover {
  opacity: 0.6;
}

.header-github-link:before {
  content: '';
  width: 24px;
  height: 24px;
  display: flex;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
    no-repeat;
}

html[data-theme='dark'] .header-github-link:before {
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
    no-repeat;
}
1

You can also make use of Navbar with custom HTML and add the ccs straight into the value.

Basic example for icon and link to an Azure DevOps repo:

// docusaurus.config.js

module.exports = {
  themeConfig: {
    navbar: {
      items: [
          {
            type: 'html',
            position: 'right',
            value: '<a href="https://dev.azure.com/{your-organization}/{your-project}/_git/{your-docusaurus-repo}" target="_blank" style="content: \'\'; width: 24px; height: 24px; background-image: url(\'https://cdn.vsassets.io/ext/ms.vss-code-web/common-content/Nav-Code.0tJczm.png\'); background-repeat: no-repeat;  background-size: 24px 24px; display: flex">'
          },
      ],
    },
  },
};

Ref: https://docusaurus.io/docs/api/themes/configuration#navbar-with-custom-html

Hoppjerka
  • 128
  • 1
  • 9
0

Extending @regexAgainstTheMachine answer, to automatically fill (color) the icon according to your theme

.navbar__github:before {
  content: "";
  display: flex;
  height: 24px;
  width: 24px;
  mask: url(/img/github.svg) no-repeat 100% 100%;
  mask-size: cover;
  background-color: var(--ifm-navbar-link-color);
}

.navbar__github:hover:before {
  background-color: var(--ifm-navbar-link-hover-color);
}

This can be used generically for additional icons

.navbar__icon:before {
  content: "";
  display: flex;
  height: 24px;
  width: 24px;
  background-color: var(--ifm-navbar-link-color);
}

.navbar__icon:hover:before {
  background-color: var(--ifm-navbar-link-hover-color);
}

.navbar__github:before {
  mask: url(/img/github.svg) no-repeat 100% 100%;
  mask-size: cover;
}

.navbar__twitter:before {
  mask: url(/img/twitter.svg) no-repeat 100% 100%;
  mask-size: cover;
}

docusaurus.config.js

        items: [
          {
            'aria-label': 'Twitter',
            to: twitter,
            position: 'right',
            className: 'navbar__icon navbar__twitter',
          },
          {
            'aria-label': 'GitHub repo',
            to: repo,
            position: 'right',
            className: 'navbar__icon navbar__github',
          },
        ],
Hayden
  • 61
  • 1
  • 3