documentation-site/components/anchor.jsx (47 lines of code) (raw):

/* Copyright (c) Uber Technologies, Inc. This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. */ import * as React from "react"; import { themedStyled } from "../pages/_app"; const Wrapper = themedStyled("a", ({ $isVisible, $theme }) => ({ visibility: $isVisible ? "visible" : "hidden", color: $theme.colors.primary, ":focus": { outline: `3px solid ${$theme.colors.accent}`, outlineOffset: "1px", }, })); const elementToSize = (element) => { switch (element) { case "h1": return 22; case "h2": return 18; case "h3": return 16; default: return 14; } }; const Anchor = ({ isVisible, slug, element }) => ( <Wrapper $isVisible={isVisible} href={`#${slug}`}> <svg xmlns="http://www.w3.org/2000/svg" width={elementToSize(element)} height={elementToSize(element)} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="feather feather-link" > <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /> <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /> </svg> </Wrapper> ); export default Anchor;