@ecl/site-footer

中文文档
5.4.1发布于 2026/11/10EUPL-1.2近 30 天下载 3722

ECL Site Footer

原始使用文档
文档目录3 节
  1. EC footer parameters
  2. EU footer parameters
  3. Example:

ECL Site Footer component

npm package: @ecl/site-footer

npm install --save @ecl/site-footer
  • "co_owner" (optional) (object) (default: ()): Banner on top of the footer
    • "title" (string) (default: ''): Co-owner title
    • "links" (array of objects): List of links, using the ECL Link structure
  • "section_xx" (object) (default: {}): Specific section of the footer, all using the same structure Available sections: "section_site_info", "section_core", "section_contact", "section_about", "section_more", "section_related", "section_feedback", and "section_common"
    • "title" (optional) (string or object): Section title; can be a simple string or a link using the ECL Link structure
    • "logo" (optional) (object): Logo image
      • "picture" (object): Images(s) used for the logo, using the ECL Picture structure
      • "path" (string): Url for the logo link
    • "description" (optional) (string): Free text
    • "action_button" (optional) (object): Higlighted link, displayed as a button
    • "links" (optional) (array of objects): List of links, using the ECL Link structure
    • "links_inline" (optional) (boolean) (default: false): Should the links be displayed inline?
    • "social_media" (optional) (object): List of social media links, using the ECL Social Media Follow structure
    • "extra_links" (optional) (array of object): Extra links, at the end of the social media, using the ECL Link structure
  • "sections_custom" (array) (default: []): Additional custom sections, following the structure ahead
  • "extra_classes" (string) (default: '') Extra classes (space separated) for the footer
  • "extra_attributes" (optional) (array) (default: []) Extra attributes for the footer
    • "name" (string) Attribute name, eg. 'data-test'
    • "value" (string) Attribute value, eg: 'data-test-1'
  • "co_owner" (optional) (object) (default: ()): Banner on top of the footer
    • "title" (string) (default: ''): Co-owner title
    • "links" (array of objects): List of links, using the ECL Link structure
  • "rows" (array of objects) (default: [])
    • "section_class_name" (optional) (string) (default: '')
    • "logo"
      • "title": (string) (default: ''): Logo title attribute.
      • "alt" (string) alt attribute for the logo link
      • "path" (string) logo link path
      • "language" (string) Language code
      • "src_mobile" (string) Path the mobile logo
      • "src_desktop" (string) Path to the desktop logo
    • "title" (optional) (string) OR (object with Link component in property)
    • "title_with_separator" (optional) (bolean) (default: false)
    • "description" (optional) (string) (default: '')
    • "content_before" (optional) (string) (default: '')
    • "links" (optional) (array of objects) (default: []),
      • "link" (link object)
      • "content_before" (string) Optional text before the link
      • "content_after" (string) Optional text after the link
    • "links_inline" (optional) (boolean) (default: false) Optional inline style for the list
    • "links_separator" (optional) (boolean) (default: false) Optional separator for inline links
  • "extra_classes" (optional) (string) (default: '') Extra classes (space separated)
  • "extra_attributes" (optional) (array) (default: []) Extra attributes
    • "name" (string) Attribute name, eg. 'data-test'
    • "value" (string) Attribute value, eg: 'data-test-1'

Example:

{% include '@ecl/site-footer/site-footer.html.twig' with {
  section_site_info: {
    title: {
      link: {
        label: 'Site name',
        path: '#',
      },
      icon: {
        name: 'arrow-right',
        family: 'phosphor',
        size: 'xs',
        style: 'inverted',
      },
    },
    description:
      'This site is managed by:<br />[name of the manager of the site]',
    social_media: {
      links: [
        {
          link: {
            label: 'Instagram',
            path: '#',
            hide_label: true,
            icon_position: 'before',
            inverted: true,
          },
          icon: {
            name: 'instagram',
            family: 'networks',
            style: 'inverted',
          },
        },
        {
          link: {
            label: 'X',
            path: '#',
            hide_label: true,
            icon_position: 'before',
            inverted: true,
          },
          icon: {
            name: 'x',
            family: 'networks',
            style: 'inverted',
          },
        },
      ],
    },
  },
  section_contact: {
    title: 'Contact us',
    links: [
      {
        link: {
          label: 'Contact information of the DG',
          path: '#',
        },
      },
    ],
  },
  section_about: {
    title: 'About us',
    links: [
      {
        link: {
          label: 'Information about the DG',
          path: '#',
        },
      },
      {
        link: {
          label: 'Information about the DG',
          path: '#',
        },
      },
    ],
  },
  section_more: {
    title: 'More information on',
    links: [
      {
        link: {
          label: 'Class name 1',
          path: '#',
        },
      },
      {
        link: {
          label: 'Class name 2',
          path: '#',
        },
      },
    ],
  },
  section_related: {
    title: 'Related links',
    links: [
      {
        link: {
          label: 'Related link 1',
          path: '#',
        },
      },
      {
        link: {
          label: 'Related link 2',
          path: '#',
        },
      },
    ],
  },
  section_common: {
    logo: {
      picture: {
        img: {
          src: 'path_to_logo.svg',
          alt: 'European Commission',
        },
      },
      path: '#',
    },
    social_media: {
      description: 'Follow the European Commission',
      description_inline: true,
      links: [
        {
          link: {
            label: 'Telegram',
            path: '#',
            hide_label: true,
            icon_position: 'before',
            inverted: true,
          },
          icon: {
            name: 'telegram',
            family: 'networks',
            style: 'inverted',
          },
        },
        {
          link: {
            label: 'X',
            path: '#',
            hide_label: true,
            icon_position: 'before',
            inverted: true,
          },
          icon: {
            name: 'x',
            family: 'networks',
            style: 'inverted',
          },
        },
      ],
    },
    links_inline: true,
    links: [
      {
        link: {
          label: 'Report an IT vulnerability',
          path: '#',
        },
      },
      {
        link: {
          label: 'Languages on our websites',
          path: '#',
        },
      },
    ],
  },
%} 

版本与发布记录

@ecl/site-footer 共发布 45 个版本,首次发布于 2025/01/22;过去 12 个月发布了 24 个版本。

版本发布日期距今
5.4.1latest2026/11/103 天前
5.4.02026/10/2222 天前
5.3.22026/10/081 个月前
5.3.12026/09/211 个月前
5.3.02026/09/151 个月前
5.2.22026/09/082 个月前

关于 @ecl/site-footer 的常见问题

@ecl/site-footer 是什么?

ECL Site Footer

如何安装 @ecl/site-footer?

在项目目录运行 npm install @ecl/site-footer,或使用 pnpm add / yarn add / bun add。

@ecl/site-footer 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/ecl__site-footer 是否存在。

@ecl/site-footer 可以商用吗?

@ecl/site-footer 使用 EUPL-1.2 许可。声明的许可为 EUPL-1.2,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@ecl/site-footer 的下载量有多少?

根据 npm 官方下载统计,@ecl/site-footer 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,722 次,日均约 124 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ecl/site-footer 还在维护吗?

最新版本 5.4.1 发布于 2026/11/10(3 天前);至今共发布 45 个版本,其中过去 12 个月发布了 24 个;首次发布于 2025/01/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。