{"id":37015991,"url":"https://github.com/powerbuoy/sleek","last_synced_at":"2026-01-14T01:37:20.201Z","repository":{"id":42966728,"uuid":"12071457","full_name":"powerbuoy/sleek","owner":"powerbuoy","description":"The WordPress Theme for Developers.","archived":false,"fork":false,"pushed_at":"2025-09-10T09:19:15.000Z","size":9904,"stargazers_count":46,"open_issues_count":7,"forks_count":24,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-10T12:58:18.573Z","etag":null,"topics":["acf","composer","npm","starter-theme","vue","webpack","wordpress","wordpress-theme"],"latest_commit_sha":null,"homepage":"https://sleekwp.dev","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/powerbuoy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-08-13T02:38:26.000Z","updated_at":"2025-09-10T09:19:19.000Z","dependencies_parsed_at":"2024-04-26T10:48:41.309Z","dependency_job_id":"faec92f1-d545-4ac8-a301-86ae99c12b15","html_url":"https://github.com/powerbuoy/sleek","commit_stats":{"total_commits":1169,"total_committers":3,"mean_commits":389.6666666666667,"dds":0.007698887938408894,"last_synced_commit":"40e509d10d9a08b4279e6eed5329482944e3dc55"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/powerbuoy/sleek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerbuoy%2Fsleek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerbuoy%2Fsleek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerbuoy%2Fsleek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerbuoy%2Fsleek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/powerbuoy","download_url":"https://codeload.github.com/powerbuoy/sleek/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powerbuoy%2Fsleek/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T00:40:43.272Z","status":"ssl_error","status_checked_at":"2026-01-14T00:40:42.636Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acf","composer","npm","starter-theme","vue","webpack","wordpress","wordpress-theme"],"created_at":"2026-01-14T01:37:19.318Z","updated_at":"2026-01-14T01:37:20.165Z","avatar_url":"https://github.com/powerbuoy.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Sleek](https://github.com/powerbuoy/sleek/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek.svg?style=flat-square)](https://github.com/powerbuoy/sleek/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek.svg?style=flat-square)](https://github.com/powerbuoy/sleek/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek.svg?style=flat-square)](https://github.com/powerbuoy/sleek/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek.svg?style=flat-square)](https://github.com/powerbuoy/sleek/stargazers)\n\nThe WordPress Theme for Developers.\n\n## Getting Started\n\n### Installation\n\nThe easiest way to install Sleek is by using [`wp cli`](https://wp-cli.org/). Assuming you already have WordPress downloaded and installed, simply run:\n\n```shell\n# Move to project folder\n$ cd /path/to/my/wordpress-site/\n\n# Install Sleek\n$ wp theme install https://github.com/powerbuoy/sleek/archive/master.zip\n\n# Move to Sleek folder\n$ cd wp-content/themes/sleek/\n\n# Install PHP dependencies\n$ composer install\n\n# Install front-end dependencies\n$ npm install\n\n# Download Fontello icons\n$ npm run fontello\n\n# Build assets\n$ npm run build\n\n# Activate Sleek:\n$ wp theme activate sleek\n```\n\n### Development\n\nDuring development run:\n\n```shell\n$ npm run dev\n```\n\nThis watches for changes and builds non minified assets with sourcemaps.\n\nTo build for production run:\n\n```shell\n$ npm run build\n```\n\nThis does _not_ watch, minifies and does not include any sourcemaps.\n\n## Folder Structure\n\n```shell\nthemes/sleek/             # → Sleek root\n├── lang/                 # → Translations\n│   └── admin             # → Translations of strings used only inside the admin\n│   │   └── sv_SE.po      # → Swedish translation of admin strings\n│   └── sv_SE.po          # → Swedish theme translation\n├── modules/              # → Modules\n│   ├── */                # → A folder indicates a module with both a class and one or more templates\n│   └── *.php             # → A single file module, template only\n├── post-types/           # → Post Types\n│   └── *.php             # → Each file represents a post type\n├── src/                  # → Front-end code and assets\n│   ├── assets/           # → Fonts, images, icons etc\n│   ├── js/               # → JavaScript\n│   │   └── app.js        # → JS entry point, should import all other JS\n│   └── sass/             # → SASS\n│       └── app.scss      # → SASS entry point, should import all other SASS\n├── dist/                 # → Webpack bundled app.js and app.css as well as assets (don't touch, don't commit)\n├── vendor/               # → PHP dependencies installed by composer (don't touch, don't commit)\n├── node_modules/         # → Front-end dependencies installed by NPM (don't touch, don't commit)\n├── .gitignore            # → Files and folders to ignore during git commits\n├── .prodignore           # → Files and folders to ignore during deploy\n├── composer.json         # → Specify PHP dependencies here using composer (related: composer.lock)\n├── package.json          # → Specify front-end dependencies here using NPM (related: package-lock.json)\n├── webpack.config.js     # → Webpack build script\n├── fontello.js           # → Builds fontello icons\n├── style.css             # → WordPress Theme config (don't touch)\n├── editor-style.css      # → CSS to add to WP admin WYSIWYG\n└── *.php                 # → WordPress templates: https://developer.wordpress.org/themes/basics/template-files/\n```\n\n## Front-end code\n\nAll CSS and JS resides in src/.\n\n### JavaScript\n\nThe entry point for JS is `src/js/app.js`. From here you should import all other JS. Glob import works so you can uncomment:\n\n```js\n////////////////\n// Import our JS\nimport './*.js';\n```\n\nTo automatically import all other JS files in the js/ folder. All JS is run through babel so feel free to use modern code.\n\nThe rather huge chunk of code in the top of app.js is [SleekUI](https://github.com/powerbuoy/sleek-ui) related. You can safely delete all of it if you don't want it.\n\n#### Vue\n\nSleek supports Vue components. Uncomment the last bit of code and import your Vue components there;\n\n```js\n////////////////////////\n// Import Vue Components\nimport ToDo from './todo.vue';\n\n// Init Vue on all [data-vue] elements\ndocument.querySelectorAll('[data-vue]').forEach(el =\u003e {\n\tnew Vue({\n\t\tel: el,\n\t\tcomponents: {\n\t\t\t'todo': ToDo\n\t\t}\n\t});\n});\n```\n\nYou can then use Vue components in any `[data-vue]` element on the page;\n\n```html\n\u003cdiv data-vue\u003e\n\t\u003ctodo\u003e\u003c/todo\u003e\n\t\u003cmy-other-component\u003e\u003c/my-other-component\u003e\n\t\u003cetc\u003e\u003c/etc\u003e\n\u003c/div\u003e\n```\n\n### CSS / SASS\n\nThe entry point for SASS is `src/sass/app.scss`. You should import all other SASS from there. SASS is not only run through SASS itself but also [PostCSS](https://postcss.org/) with [autoprefixer](https://github.com/postcss/autoprefixer), [custom-media](https://github.com/postcss/postcss-custom-media) and [custom-selectors](https://github.com/postcss/postcss-custom-selectors) so feel free to use those.\n\nSleek comes with [SleekUI](https://github.com/powerbuoy/sleek-ui) and it can be configured in `src/sass/config.scss`. Or you can remove it entirely.\n\n### Icons\n\nIcons are downloaded from Fontello. Simply add the icons you want to `src/icons.json` (use [fontello.com](http://fontello.com/) and choose \"Download webfont\" -\u003e \"Get config only\"). To download icons you can run `npm run fontello`. Icons are also downloaded when you run `npm run build` and `npm run dev`.\n\nThe fontello command also creates a `src/sass/icons.scss` file which contains all the icon related CSS classes as well as SASS mixin and variables for every icon so you can do:\n\n```sass\n.my-element::before {\n\t@include icon($icon-star);\n}\n```\n\n## Sleek Packages\n\nSleek is made up of several composer packages that provide different functionality.\n\n---\n\n### [Sleek ACF](https://github.com/powerbuoy/sleek-acf/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-acf.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-acf)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-acf.svg?style=flat-square)](https://github.com/powerbuoy/sleek-acf/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-acf.svg?style=flat-square)](https://github.com/powerbuoy/sleek-acf/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-acf.svg?style=flat-square)](https://github.com/powerbuoy/sleek-acf/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-acf.svg?style=flat-square)](https://github.com/powerbuoy/sleek-acf/stargazers)\n\nImproves ACF in a number of ways like nicer flexible content titles, collapsed flexible content layouts, better looking relationship field and more.\n\n#### Theme Support\n\n##### `sleek/acf/hide_admin`\n\nEnable to hide the ACF admin.\n\n##### `sleek/acf/fields/redirect_url`\n\nEnable the redirect_url field.\n\n#### Hooks\n\nN/A\n\n#### Functions\n\n##### `Sleek\\Acf\\generate_keys($fields, $prefix)`\n\nGenerate a `key` property next to every `name` property in `$fields`. The `key` will be in the form of `{$prefix}_{$name}`.\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Archive Filter](https://github.com/powerbuoy/sleek-archive-filter/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-archive-filter.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-archive-filter)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-archive-filter.svg?style=flat-square)](https://github.com/powerbuoy/sleek-archive-filter/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-archive-filter.svg?style=flat-square)](https://github.com/powerbuoy/sleek-archive-filter/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-archive-filter.svg?style=flat-square)](https://github.com/powerbuoy/sleek-archive-filter/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-archive-filter.svg?style=flat-square)](https://github.com/powerbuoy/sleek-archive-filter/stargazers)\n\nAdds the ability to filter posts in an archive using GET params:\n\n- `?sleek_filter_tax_{taxonomy_name}[]={term_id}`  \n\tShow only posts belonging to `{term_id}` in `{taxonomy_name}`.\n- `?sleek_filter_meta_min_{meta_field_name}[]={value}`  \n\tShow only posts whose (numeric) `{meta_field_name}` is a minimum of `{value}`.\n- `?sleek_filter_meta_max_{meta_field_name}[]={value}`  \n\tShow only posts whose (numeric) `{meta_field_name}` is a maximum of `{value}`.\n- `?sleek_filter_meta_{meta_field_name}[]={value}`  \n\tShow only posts whose `{meta_field_name}` is exactly `{value}`.\n\n#### Theme Support\n\n##### `sleek/archive_filter`\n\nEnable the above.\n\n#### Hooks\n\nN/A\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Archive Meta](https://github.com/powerbuoy/sleek-archive-meta/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-archive-meta.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-archive-meta)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-archive-meta.svg?style=flat-square)](https://github.com/powerbuoy/sleek-archive-meta/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-archive-meta.svg?style=flat-square)](https://github.com/powerbuoy/sleek-archive-meta/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-archive-meta.svg?style=flat-square)](https://github.com/powerbuoy/sleek-archive-meta/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-archive-meta.svg?style=flat-square)](https://github.com/powerbuoy/sleek-archive-meta/stargazers)\n\nHooks into the `the_archive_title()` and `the_archive_description()` functions to provide better search results texts, remove prefixes and more.\n\nAlso adds a new `Sleek\\ArchiveMeta\\the_archive_image()` (which, without ACF, only works for the user archive (using the avatar)).\n\nIf used together with `Sleek\\PostTypes`' settings pages `the_archive_image()` returns the image used on the settings page.\n\n#### Theme Support\n\nN/A\n\n#### Hooks\n\nN/A\n\n#### Functions\n\n##### `Sleek\\ArchiveMeta\\get_the_archive_image($size)`\n\nReturns potential archive images as `\u003cimg\u003e`.\n\n##### `Sleek\\ArchiveMeta\\get_the_archive_image_url(size)`\n\nReturns potential archive image URL.\n\n##### `Sleek\\ArchiveMeta\\the_archive_image(size)`\n\nRenders potential archive image.\n\n##### `Sleek\\ArchiveMeta\\the_archive_image_url(size)`\n\nRenders potential archive image URL.\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Cleanup](https://github.com/powerbuoy/sleek-cleanup/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-cleanup.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-cleanup)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-cleanup.svg?style=flat-square)](https://github.com/powerbuoy/sleek-cleanup/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-cleanup.svg?style=flat-square)](https://github.com/powerbuoy/sleek-cleanup/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-cleanup.svg?style=flat-square)](https://github.com/powerbuoy/sleek-cleanup/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-cleanup.svg?style=flat-square)](https://github.com/powerbuoy/sleek-cleanup/stargazers)\n\nCleans up a bunch of unnecessary WordPress stuff like inline emoji code, gallery markup and more.\n\n#### Theme Support\n\n##### `sleek/cleanup/disable_comments`\n\nCompletely disable comments on the entire site.\n\n##### `sleek/cleanup/comment_form_placeholders`\n\nAdd placeholders to comment form fields.\n\n#### Hooks\n\nN/A\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Core](https://github.com/powerbuoy/sleek-core/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-core.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-core)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-core.svg?style=flat-square)](https://github.com/powerbuoy/sleek-core/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-core.svg?style=flat-square)](https://github.com/powerbuoy/sleek-core/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-core.svg?style=flat-square)](https://github.com/powerbuoy/sleek-core/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-core.svg?style=flat-square)](https://github.com/powerbuoy/sleek-core/stargazers)\n\nAdds a bunch of theme support, includes translation files, enqueues scripts etc etc.\n\n#### Theme Support\n\n##### `sleek/disable_jquery`\n\nDisable jQuery on the front end (not inside admin). Note that this may break some plug-ins.\n\n##### `sleek/jquery_cdn`\n\nInclude jQuery from a CDN (code.jquery.com).\n\n##### `sleek/get_terms_post_type_arg`\n\nAdds support for a `post_type` argument to `get_terms` so it only returns terms associated with that post-type.\n\n##### `sleek/disable_theme_editor`\n\nDisables the theme editor.\n\n##### `sleek/classic_editor`\n\nDisables Gutenberg and enables the classic editor everywhere.\n\n##### `sleek/nice_email_from`\n\nChanges the default email and name when using `wp_mail()` to use the site name and admin email instead of \"WordPress\".\n\n##### `sleek/disable_404_guessing`\n\nDisables WordPress' insane guessing when it hits a 404: https://core.trac.wordpress.org/ticket/16557\n\n#### Hooks\n\n##### `sleek/jquery_version`\n\nReturn a jQuery version like \"3.4.1\" to change it.\n\n##### `sleek/meta_viewport`\n\nSet a custom meta_viewport instead of the default `width=device-width, initial-scale=1.0`.\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Custom Logo](https://github.com/powerbuoy/sleek-custom-logo/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-custom-logo.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-custom-logo)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-custom-logo.svg?style=flat-square)](https://github.com/powerbuoy/sleek-custom-logo/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-custom-logo.svg?style=flat-square)](https://github.com/powerbuoy/sleek-custom-logo/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-custom-logo.svg?style=flat-square)](https://github.com/powerbuoy/sleek-custom-logo/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-custom-logo.svg?style=flat-square)](https://github.com/powerbuoy/sleek-custom-logo/stargazers)\n\nHooks into `the_custom_logo()` and renders one of:\n\n1) A custom logo selected in the admin\n2) An SVG logo found in `dist/assets/site-logo.svg`\n3) A PNG logo found in `dist/assets/site-logo.png`\n4) Just outputs the site name\n\nAlso makes it possible to pass an array of arguments to `get_custom_logo()`; `the_custom_logo(['inline_svg' =\u003e true, 'append' =\u003e '-small'])` would instead render `dist/assets/site-logo-small.svg` as an inline SVG.\n\nFinally it also changes the link class name from `custom-logo-link` to `site-logo`.\n\n#### Theme Support\n\nN/A\n\n#### Hooks\n\nN/A\n\n#### Functions\n\n##### `the_custom_logo($args)`\n\nThis is the native WordPress `the_custom_logo()` but we add the `$args` argument which enables you to specify `inline_svg` (`true`/`false`) and `append` (`String` to append to `site-logo` filename).\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Gallery](https://github.com/powerbuoy/sleek-gallery/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-gallery.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-gallery)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-gallery.svg?style=flat-square)](https://github.com/powerbuoy/sleek-gallery/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-gallery.svg?style=flat-square)](https://github.com/powerbuoy/sleek-gallery/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-gallery.svg?style=flat-square)](https://github.com/powerbuoy/sleek-gallery/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-gallery.svg?style=flat-square)](https://github.com/powerbuoy/sleek-gallery/stargazers)\n\nImproves media and gallery related output like the default gallery markup, wraps captioned images in figure/figcaption, removes gallery CSS and more.\n\n#### Theme Support\n\n##### `sleek/oembed/youtube` and `sleek/oembed/vimeo`\n\nWraps YouTube and/or Vimeo embeds in a figure with thumbnail and caption, also uses their respective APIs so that clicking the thumbnail plays or pauses the video.\n\n##### `sleek/gallery/slideshow`\n\nCreate slideshows instead of galleries. The number of columns selected for the gallery will be the number of slides per page. Requires SleekUI.\n\n#### Hooks\n\nN/A\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Google Maps](https://github.com/powerbuoy/sleek-google-maps/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-google-maps.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-google-maps)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-google-maps.svg?style=flat-square)](https://github.com/powerbuoy/sleek-google-maps/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-google-maps.svg?style=flat-square)](https://github.com/powerbuoy/sleek-google-maps/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-google-maps.svg?style=flat-square)](https://github.com/powerbuoy/sleek-google-maps/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-google-maps.svg?style=flat-square)](https://github.com/powerbuoy/sleek-google-maps/stargazers)\n\nAdds a \"Google Maps API Key\" setting to the admin which, if not empty, adds the Google Maps API to the page with a `googleMapsInit` callback. Also sends the Google Maps Key to ACF so that ACF maps work.\n\nAlso adds a SLEEK_GOOGLE_MAPS_API_KEY JavaScript variable to the page.\n\n#### Theme Support\n\nN/A\n\n#### Hooks\n\nN/A\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Google Search](https://github.com/powerbuoy/sleek-google-search/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-google-search.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-google-search)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-google-search.svg?style=flat-square)](https://github.com/powerbuoy/sleek-google-search/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-google-search.svg?style=flat-square)](https://github.com/powerbuoy/sleek-google-search/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-google-search.svg?style=flat-square)](https://github.com/powerbuoy/sleek-google-search/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-google-search.svg?style=flat-square)](https://github.com/powerbuoy/sleek-google-search/stargazers)\n\nUnder construction\n\n![](https://media3.giphy.com/media/xKvwa3SjldeWQ/giphy.gif?cid=790b761170db4b5f3f6d323078b1396ceb15bb304fdaaf59\u0026rid=giphy.gif)\n\n---\n\n### [Sleek Image Sizes](https://github.com/powerbuoy/sleek-image-sizes/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-image-sizes.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-image-sizes)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-image-sizes.svg?style=flat-square)](https://github.com/powerbuoy/sleek-image-sizes/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-image-sizes.svg?style=flat-square)](https://github.com/powerbuoy/sleek-image-sizes/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-image-sizes.svg?style=flat-square)](https://github.com/powerbuoy/sleek-image-sizes/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-image-sizes.svg?style=flat-square)](https://github.com/powerbuoy/sleek-image-sizes/stargazers)\n\nUtility functions for registering WordPress image sizes.\n\n#### Theme support\n\nN/A\n\n#### Hooks\n\nN/A\n\n#### Functions\n\n##### `Sleek\\ImageSizes\\register($width, $height, $crop, $additionalSizes)`\n\nOverrides WordPress' built-in thumbnail sizes (thumbnail, medium, medium_large and large) using the dimensions passed to the function, e.g: `Sleek\\ImageSizes\\register(1920, 1080, ['center', 'center']);` where large will be `1920x1080`, `medium_large` will be 75% of that size, `medium` 50% and `thumbnail` 25%.\n\nAlso accepts a fourth argument, `$additionalSizes`, which allows you to register more sizes under different names;\n\n```\nSleek\\ImageSizes\\register(1920, 1080, ['center', 'center'], [\n\t'portrait' =\u003e ['width' =\u003e 1080, 'height' =\u003e 1920, 'crop' =\u003e ['center', 'top']],\n\t'square' =\u003e ['width' =\u003e 1920, 'height' =\u003e 1920],\n]);\n```\n\nEach additional size will be registered as `{$name}_large`, `{$name}_medium_large` (75%), `{$name}_medium` (50%) and `{$name}_thumbnail` (25%)\n\n##### `Sleek\\ImageSizes\\get_image_sizes($width, $height)`\n\nHelper function for `register()`.\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Login](https://github.com/powerbuoy/sleek-login/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-login.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-login)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-login.svg?style=flat-square)](https://github.com/powerbuoy/sleek-login/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-login.svg?style=flat-square)](https://github.com/powerbuoy/sleek-login/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-login.svg?style=flat-square)](https://github.com/powerbuoy/sleek-login/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-login.svg?style=flat-square)](https://github.com/powerbuoy/sleek-login/stargazers)\n\nImproves the login screen and hides admin bar from subscribers, also redirects them to the home page upon login.\n\n#### Theme Support\n\n##### `sleek/login/styling`\n\nOverride the default WordPress styling of the login page and use the theme styling instead.\n\n##### `sleek/login/require_login`\n\nRequire login on the entire site (intranet).\n\n#### Hooks\n\nN/A\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Menu](https://github.com/powerbuoy/sleek-menu/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-menu.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-menu)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-menu.svg?style=flat-square)](https://github.com/powerbuoy/sleek-menu/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-menu.svg?style=flat-square)](https://github.com/powerbuoy/sleek-menu/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-menu.svg?style=flat-square)](https://github.com/powerbuoy/sleek-menu/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-menu.svg?style=flat-square)](https://github.com/powerbuoy/sleek-menu/stargazers)\n\nCleans up the menu HTML by removing IDs and redundant classes. Also fixes active-classes on post type and taxonomy archives.\n\n#### Theme Support\n\nN/A\n\n#### Hooks\n\nN/A\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Modules](https://github.com/powerbuoy/sleek-modules/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-modules.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-modules)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-modules.svg?style=flat-square)](https://github.com/powerbuoy/sleek-modules/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-modules.svg?style=flat-square)](https://github.com/powerbuoy/sleek-modules/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-modules.svg?style=flat-square)](https://github.com/powerbuoy/sleek-modules/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-modules.svg?style=flat-square)](https://github.com/powerbuoy/sleek-modules/stargazers)\n\nCreate modules by creating classes in `/modules/`.\n\n#### Theme Support\n\n##### `sleek/modules/add_new_module_preview`\n\nEnable screenshots and descriptions of modules when clicking \"Add a Module\".\n\n##### `sleek/modules/global_modules`\n\nEnable \"Global Modules\" (WIP).\n\n##### `sleek/modules/inline_edit`\n\nEnable inline editing of flexible modules.\n\n##### `sleek/modules/module_preview`\n\nEnable module preview in admin.\n\n#### Filters\n\n##### `sleek/modules/global_modules(array $modules)`\n\nReturn an array of module names here to enable them as global modules.\n\n##### `sleek/modules/dummy_field_value($value, $field, $module, $template, $level)`\n\nReturn a `$value` from here to use that value when rendering the field with dummy data.\n\n##### `sleek/modules/fields(array $fields, $moduleName, $args)`\n\nFilter the ACF fields for modules before they're added. This allows you to add \"global\" fields to several modules at once.\n\n#### Actions\n\nTODO...\n\n#### Functions\n\n##### `Sleek\\Modules\\render($module, $fields, $template)`\n\nRender module `$module` using (optional) fields `$fields` (or ACF location like a term, options page or set to `null` to fetch fields from `get_the_ID()`) using (optional) template `$template`.\n\n##### `Sleek\\Modules\\render_flexible($area, $id)`\n\nRender flexible modules contained in flexible content area `$area` using (optional) `$id` as ACF location.\n\n##### `Sleek\\Modules\\get_module_fields(array $modules, $layout, $withTemplates)`\n\nFetch ACF fields for all `$modules` and use layout `$layout` (`tabs`, `accordion`, `normal` or `flexible`). Optionally give every module group a `Template` dropdown using `$withTemplates = true`.\n\n##### `Sleek\\Modules\\render_dummies(array $modules)`\n\nRender all `$modules` using dummy data.\n\n#### Classes\n\n##### `Sleek\\Modules\\Module`\n\nExtend this class to create a module.\n\n###### `Module::init()`\n\nThis method is called once on every page load. It allows you to add hooks or do whatever you like related to your module. Note that it runs whether or not the module is used on the current page.\n\n###### `Module::fields()`\n\nReturn an array of ACF fields from here and they will be added to the module.\n\n###### `Module::data()`\n\nReturn an array from here and each array property will be available in the module template.\n\n###### `Module::get_field($name)`\n\nReturn the value of any field returned from `fields()`. Useful inside `data()` to check module configuration.\n\n---\n\n### [Sleek Notices](https://github.com/powerbuoy/sleek-notices/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-notices.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-notices)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-notices.svg?style=flat-square)](https://github.com/powerbuoy/sleek-notices/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-notices.svg?style=flat-square)](https://github.com/powerbuoy/sleek-notices/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-notices.svg?style=flat-square)](https://github.com/powerbuoy/sleek-notices/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-notices.svg?style=flat-square)](https://github.com/powerbuoy/sleek-notices/stargazers)\n\nAdds settings to Settings -\u003e Sleek to display various notices on the site.\n\n#### Theme Support\n\n##### `sleek/notices/cookie_consent`\n\nAdd a \"Cookie Consent\" message to the site. Also adds a textarea to Settings -\u003e Sleek to customize the message.\n\n##### `sleek/notices/outdated_browser_warning`\n\nAdd an \"Outdated Browser\" warning to the site. Also adds a textarea to Settings -\u003e Sleek to customize the warning.\n\n#### Hooks\n\n##### `sleek/notices/cookie_consent`\n\nFilter the cookie consent message. Only runs if no message has been entered in the admin settings.\n\n##### `sleek/notices/outdated_browser_warning`\n\nFilter the browser warning. Only runs if no warning has been entered in the admin settings.\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Post Types](https://github.com/powerbuoy/sleek-post-types/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-post-types.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-post-types)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-post-types.svg?style=flat-square)](https://github.com/powerbuoy/sleek-post-types/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-post-types.svg?style=flat-square)](https://github.com/powerbuoy/sleek-post-types/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-post-types.svg?style=flat-square)](https://github.com/powerbuoy/sleek-post-types/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-post-types.svg?style=flat-square)](https://github.com/powerbuoy/sleek-post-types/stargazers)\n\nCreate post types by creating classes in `/post-types/`.\n\n#### Theme Support\n\nN/A\n\n#### Hooks\n\n##### `sleek/post_types/field_group`\n\nFilter the ACF field group for post types before they're added.\n\n##### `sleek/post_types/fields`\n\nFilter the ACF fields for post types before they're added.\n\n##### `sleek/post_types/archive_fields`\n\nFilter the ACF fields for the archive settings before they're added.\n\n#### Functions\n\n##### `Sleek\\PostTypes\\get_file_meta()`\n\nReturn information about all files in `/post-types/` (internal use).\n\n#### Classes\n\n##### `Sleek\\PostTypes\\PostType`\n\nExtend this class to create a post type.\n\n###### `PostType::init()`\n\nThis method is called once on every page load. It allows you to add hooks or do whatever you like related to your post type.\n\n###### `PostType::config()`\n\nReturn an array of post type configuration here. The array is passed directly to [register_post_type](https://developer.wordpress.org/reference/functions/register_post_type/). A few additional properties are available:\n\n**`taxonomies`**\n\nThis is a native WordPress property but unlike when calling `register_post_type()` any taxonomy set in here will be automatically created if it doesn't already exist.\n\n**`has_single`**\n\nSet this to false to disable single pages for the post type.\n\n**`hide_from_search`**\n\nHides the post type from search without the [side effects](https://core.trac.wordpress.org/ticket/20234) of the built-in `exclude_from_search`.\n\n**`has_settings`**\n\nSet this to false to _not_ add a \"Settings\" page for the post type.\n\n**`has_archive`**\n\nIf this is false the settings page will be empty, if not it will have a \"Title\", \"Image\" and \"Description\".\n\n###### `PostType::fields()`\n\nReturn an array of ACF fields from here and they will be added to the post type.\n\n###### `PostType::sticky_modules()`\n\nReturn an array of module names and they will be added to the post type. Render a sticky module using `Sleek\\Modules\\render('name-of-module')`.\n\n###### `PostType::flexible_modules()`\n\nReturn an array of module names and they will be available in a flexible content field named `flexible_modules`. An associative array can be used to create multiple flexible content fields;\n\n```\n[\n\t'left_column' =\u003e ['text-block', 'text-blocks'],\n\t'right_column' =\u003e ['related-posts', 'recent-comments']\n]\n```\n\nRender a flexible module field using `Sleek\\Modules\\render_flexible('flexible_modules')` or `Sleek\\Modules\\render_flexible('left_column')` etc.\n\n###### `PostType::sticky_archive_modules()`\n\nReturn an array of module names and they will be added to the post type's settings page. Render a sticky module using `Sleek\\Modules\\render('name-of-module', 'mycpt_settings')`.\n\n###### `PostType::flexible_archive_modules()`\n\nReturn an array of module names and they will be available in a flexible content field named `flexible_modules` on the post type's settings page. An associative array can be used here too.\n\nRender modules on the settings page using `Sleek\\Modules\\render_flexible('flexible_modules', 'mycpt_settings')`.\n\n---\n\n### [Sleek Settings](https://github.com/powerbuoy/sleek-settings/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-settings.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-settings)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-settings.svg?style=flat-square)](https://github.com/powerbuoy/sleek-settings/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-settings.svg?style=flat-square)](https://github.com/powerbuoy/sleek-settings/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-settings.svg?style=flat-square)](https://github.com/powerbuoy/sleek-settings/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-settings.svg?style=flat-square)](https://github.com/powerbuoy/sleek-settings/stargazers)\n\nAdds an options page to the admin (Settings -\u003e Sleek) with two fields: `head_code` and `foot_code` which allows you to add arbitrary HTML to `\u003chead\u003e` and just before `\u003c/body\u003e`. Also provides a simple API to add more settings fields to the options page.\n\n#### Theme Support\n\nN/A\n\n#### Hooks\n\nN/A\n\n#### Functions\n\n##### `Sleek\\Settings\\add_setting($name, $type, $label)`\n\nAdd a new settings field to the options page.\n\n##### `Sleek\\Settings\\get_setting($name)`\n\nGet value of setting.\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek TinyMCE](https://github.com/powerbuoy/sleek-tinymce/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-tinymce.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-tinymce)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-tinymce.svg?style=flat-square)](https://github.com/powerbuoy/sleek-tinymce/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-tinymce.svg?style=flat-square)](https://github.com/powerbuoy/sleek-tinymce/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-tinymce.svg?style=flat-square)](https://github.com/powerbuoy/sleek-tinymce/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-tinymce.svg?style=flat-square)](https://github.com/powerbuoy/sleek-tinymce/stargazers)\n\nImproves the TinyMCE editor.\n\n#### Theme Support\n\n##### `sleek/tinymce/disable_colors`\n\nDisables the ability to change text color.\n\n##### `sleek/tinymce/clean_paste`\n\nCleans up HTML that is copy/pasted by removing unwanted HTML elements and attributes.\n\n#### Hooks\n\n##### `sleek/tinymce/clean_paste_disallowed_elements`\n\nFilter the list of HTML elements which are _not_ allowed to be pasted.\n\n##### `sleek/tinymce/formats`\n\nAdd or remove elements added to the \"Format\" menu in the WYSIWYG editor. By default \"Button\" and \"Button (ghost)\" are added.\n\n#### Functions\n\nN/A\n\n#### Classes\n\nN/A\n\n---\n\n### [Sleek Utils](https://github.com/powerbuoy/sleek-utils/)\n\n[![Packagist](https://img.shields.io/packagist/vpre/powerbuoy/sleek-utils.svg?style=flat-square)](https://packagist.org/packages/powerbuoy/sleek-utils)\n[![GitHub license](https://img.shields.io/github/license/powerbuoy/sleek-utils.svg?style=flat-square)](https://github.com/powerbuoy/sleek-utils/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/powerbuoy/sleek-utils.svg?style=flat-square)](https://github.com/powerbuoy/sleek-utils/issues)\n[![GitHub forks](https://img.shields.io/github/forks/powerbuoy/sleek-utils.svg?style=flat-square)](https://github.com/powerbuoy/sleek-utils/network)\n[![GitHub stars](https://img.shields.io/github/stars/powerbuoy/sleek-utils.svg?style=flat-square)](https://github.com/powerbuoy/sleek-utils/stargazers)\n\nUtility functions used internally by Sleek. Please [check the code](https://github.com/powerbuoy/sleek-utils/blob/master/sleek-utils.php) for documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowerbuoy%2Fsleek","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpowerbuoy%2Fsleek","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowerbuoy%2Fsleek/lists"}