{"id":13751657,"url":"https://github.com/phimage/morphi","last_synced_at":"2025-09-05T11:13:13.071Z","repository":{"id":63920317,"uuid":"197448212","full_name":"phimage/morphi","owner":"phimage","description":"Shapes for SwiftUI ♡☾","archived":false,"fork":false,"pushed_at":"2019-11-08T09:31:41.000Z","size":314,"stargazers_count":75,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T21:01:57.845Z","etag":null,"topics":["heart","path","shape","swift","swiftui"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phimage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"phimage","patreon":"phimage","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-07-17T19:14:07.000Z","updated_at":"2025-03-30T01:46:29.000Z","dependencies_parsed_at":"2023-01-14T14:00:17.651Z","dependency_job_id":null,"html_url":"https://github.com/phimage/morphi","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phimage%2Fmorphi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phimage%2Fmorphi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phimage%2Fmorphi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phimage%2Fmorphi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phimage","download_url":"https://codeload.github.com/phimage/morphi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251812455,"owners_count":21647911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["heart","path","shape","swift","swiftui"],"created_at":"2024-08-03T09:00:51.282Z","updated_at":"2025-05-01T02:32:22.639Z","avatar_url":"https://github.com/phimage.png","language":"Swift","readme":"# Morphi - Μορφ\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://mit-license.org)\n[![Platform](http://img.shields.io/badge/platform-macos_ios_osx_tvos-lightgrey.svg?style=flat)](https://developer.apple.com/resources/)\n[![Language](http://img.shields.io/badge/language-swift-orange.svg?style=flat)](https://developer.apple.com/swift)\n[![Build Status](https://travis-ci.org/phimage/morphi.svg)](https://travis-ci.org/phimage/morphi)\n[![Sponsor](https://img.shields.io/badge/Sponsor-%F0%9F%A7%A1-white.svg?style=flat)](https://github.com/sponsors/phimage)\n\u003ca href=\"https://www.patreon.com/phimage\"\u003e\n\u003cimg src=\"https://c5.patreon.com/external/logo/become_a_patron_button.png\" alt=\"Become a Patron!\" height=\"20\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://paypal.me/ericphimage\"\u003e\n\u003cimg src=\"https://buymecoffee.intm.org/img/button-paypal-white.png\" alt=\"Buy me a coffee\" height=\"20\"\u003e\n\u003c/a\u003e\n\nMorphi provides some additional [shapes](https://developer.apple.com/documentation/swiftui/shape) for SwiftUI.\n\n\u003cimg align=\"left\" hspace=\"20\" src=\"/Example/Screen.png\" alt=\"Screen shot\" height=\"333\"\u003e\n\n- [x] `Triangle`\n- [x] `Parallelogram(topLeftAngle)`\n- [x] `Polygon(sides)`\n- [x] `RoundedPolygon(sides, cornerRadius)`\n- [x] `Heart`\n- [x] `Moon(angle)`\n- [x] `PlusSign(width)`\n- [x] `Star(points)`\n- [x] `Wave(isUp, width, offset)`\n- [x] `SuperEllipse(n)`\n- [x] `Drop`\n- [x] `Ring(radius)` (to use with a `FillStyle` with `eoFill` equal to `true`)\n- [x] `Gear(radius, cogs)` (to use with a `FillStyle` with `eoFill` equal to `true`)\n\n## Examples\n\n### Create a shape view\n\nLike any other shapes just initialize it.\n\n```swift\n Heart().fill(Color.red).frame(width: 100, height: 100)\n ```\n \n \u003cimg  src=\"/Example/Heart.png\" alt=\"Heart\" height=\"128\"\u003e\n \n ### Mask an existing view\n \n ```swift\n aView.clipShape(Drop())\n // or using static member\n aView.clipShape(.drop)\n```\n\nYou can even do it on another shape.\n```swift\nPolygon(sides: 6).fill(Color.red).clipShape(.drop)\n```\n\u003cimg  src=\"/Example/PolygonDrop.png\" alt=\"PolygonDrop\" height=\"128\"\u003e\n\n## UIKit\n\nFor `UIKit` version with `UIBezierPath` see [IBAnimatable framework](https://github.com/IBAnimatable/IBAnimatable/)\n","funding_links":["https://github.com/sponsors/phimage","https://patreon.com/phimage","https://www.patreon.com/phimage","https://paypal.me/ericphimage"],"categories":["Shapes","🌎 by the community"],"sub_categories":["Content"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphimage%2Fmorphi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphimage%2Fmorphi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphimage%2Fmorphi/lists"}