No description
Find a file
Bryan Stone 34fc442ac4
chore(main): release 1.3.0 (#12)
* chore(main): release 1.3.0

* chore: format, update versions.json and lock file

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-04 18:55:38 +00:00
.github/workflows fix: guard fromJSON calls when release-please outputs no PR 2026-02-04 11:55:13 -06:00
.trunk Add local image docs and ignore auto-generated CHANGELOG in linter 2026-02-04 12:49:54 -06:00
.editorconfig Initial commit 2024-12-13 12:35:46 -06:00
.eslintignore Initial commit 2024-12-13 12:35:46 -06:00
.eslintrc Initial commit 2024-12-13 12:35:46 -06:00
.gitignore Initial commit 2024-12-13 12:35:46 -06:00
.npmrc Initial commit 2024-12-13 12:35:46 -06:00
.release-please-manifest.json chore(main): release 1.3.0 (#12) 2026-02-04 18:55:38 +00:00
CHANGELOG.md chore(main): release 1.3.0 (#12) 2026-02-04 18:55:38 +00:00
CLAUDE.md Update CLAUDE.md with wiki-link image resolution docs 2026-02-04 12:50:33 -06:00
esbuild.config.mjs Add trunk for linting/formatting 2025-02-14 18:23:07 -06:00
example.gif Add sample gif 2024-12-16 17:37:22 -06:00
LICENSE.md Add trunk for linting/formatting 2025-02-14 18:23:07 -06:00
main.ts Deduplicate wiki-link regex and image resolution logic 2026-02-04 12:35:38 -06:00
manifest.json chore(main): release 1.3.0 (#12) 2026-02-04 18:55:38 +00:00
package-lock.json chore(main): release 1.3.0 (#12) 2026-02-04 18:55:38 +00:00
package.json chore(main): release 1.3.0 (#12) 2026-02-04 18:55:38 +00:00
README.md Add local image docs and ignore auto-generated CHANGELOG in linter 2026-02-04 12:49:54 -06:00
release-please-config.json Add GitHub Actions CI/CD and Release Please automation 2026-02-04 10:02:56 -06:00
sample_card.png Add trunk for linting/formatting 2025-02-14 18:23:07 -06:00
styles.css Add trunk for linting/formatting 2025-02-14 18:23:07 -06:00
tsconfig.json Add trunk for linting/formatting 2025-02-14 18:23:07 -06:00
versions.json chore(main): release 1.3.0 (#12) 2026-02-04 18:55:38 +00:00

Obsidian Contact Cards Plugin

The Obsidian Contact Cards Plugin transforms YAML data inside a special code block into a beautifully designed contact card. This lets you quickly view a person's details (even in preview mode).

Example

NOTE: This plugin utilizes third-party services:

  • Avatars are pulled from Gravatar, based on email address.
  • Company logos retrieved from Logo.dev, based on email domain.

Features

  • Beautiful Formatting: Display name, title, company, email, and phone number in a clean, business-card style layout.
  • Simple Syntax: Just provide a contact-card code block with YAML fields, and the plugin will handle the rest.
  • Customizable: Adjust styling by modifying the plugins CSS or by creating your own Obsidian CSS snippets.
  • Powerful Integrations:
    • Photos automatically populated based on email address
    • Company logos pulled based on email domain (when Company name is provided)
    • Clickable fields for more context (phone, email, location, etc)

Attribution

Development

  • Fork the repo & clone to a local development folder. For convenience, you can place this folder in your .obsidian/plugins/obsidian-contact-cards folder or symlink it!
  • Install dependencies using npm install
  • Run npm run dev to compile your plugin from main.ts to main.js.
  • Reload Obsidian to load the new version of your plugin.
  • Enable plugin in settings window.

Example

Add a code block to your note:

    ```contact-card
    name: Bryan Stone
    email: bryan@steampunk.dev
    company: Steampunk Labs
    title: Founder & Managing Partner
    phone: 2565551234
    location: Madison, AL
    ```

View the rendered card in Reading/Preview mode: Sample Card

Local Images

You can use Obsidian wiki-link syntax to reference images from your vault for the contact photo or company logo:

    ```contact-card
    name: Bryan Stone
    photo: [[headshot.png]]
    logo: ![[company-logo.png]]
    company: Steampunk Labs
    title: Founder & Managing Partner
    ```

Both [[...]] and ![[...]] forms are supported. The plugin resolves the link to the corresponding file in your vault. If the linked file is not found, the field is silently ignored (falling back to Gravatar for photos, or Logo.dev for logos).

The photo and logo fields are shorthand aliases for photo_url and logo_url respectively — you can use either form.

Customization

The obsidian-contact-cards plugin allows for several customizable settings to tailor the behavior and design of your contact cards. Below are the available options you can configure:

Settings

  1. Default Country Code
    • Description: This setting determines the country code used for phone number formatting. Provide the 2-letter country code (e.g., "GB" for the United Kingdom, "IN" for India)
    • Default: "US"

Styling

The obsidian-contact-cards plugin provides several customizable CSS classes to help you personalize the appearance of the business cards. You can override these styles in your own stylesheet to create a custom look and feel. Below are the available classes and their purposes:

Available CSS Classes

  • .contact-card-content - The outer container for the card, this is used for layout & sizing.
  • .contact-card - The inner container that holds the profile image, logo, and contact information.
  • .contact-card-photo - Profile photo image of the contact.
  • .contact-card-logo - Company logo displayed on the card.
  • .contact-card-info - Container for the contact's name, title, company, and other information.
  • .contact-card-name - The name of the contact.
  • .contact-card-title - The title/position of the contact.
  • .contact-card-separator - A separator between sections in the contact info (e.g., between name and company).
  • .contact-card-error - Applied to elements displaying an error message.

Animations

  • .contact-card-content - This class uses the animatop animation to slide the background shape into view.
  • .contact-card:after - This class defines the background shape displayed behind the card.

Roadmap

  • Add support for additional "power" fields with custom functionality (e.g. social media links, skills)
  • Add richer integration for finding a contact's photo

Contributing

Contributions, issues, and feature requests are welcome!
Feel free to open an issue or submit a pull request if you find any bugs or have suggestions for improvements.

License

MIT